面向对象基础—以C#为例(2):构造方法和方法重载——《大话设计模式》

面向对象编程,英文叫Object-Oriented Programming,也就是针对对象来进行编程。

以下内容是对《大话设计模式》这本书的知识总揽,以及自我理解

1、类与实例https://blog.csdn.net/LZYself/article/details/150207945?spm=1001.2014.3001.5501

2、构造方法

定义:又叫构造函数,就是对类进行初始化

构造方法与类同名,无返回值,也不需要void,在new时候调用

可以理解为:在类创建时,就调用了构造方法

private void button1_click(object sender,EventArgs e)
{
   Cat cat = new Cat()//这个地方的Cat()就是构造方法
   MessageBox.Show(cat.Shout());//调用函数
}

问题:在类当中没有写过构造方法Cat(),又为什么可以调用呢?

解答:实际情况是所有类都有构造方法,如果不编码则系统默认生成空的构造方法,若有自己定义的构造方法,那么默认的构造方法就会失效

//功能5:输出为“我的名字叫xx,喵”
class Cat
{
   private string name="";//声明Cat类的私有字符串变量name
   public Cat(string name)//定义Cat类的构造方法,参数是输入一个字符串
   {
       this.name=name;//将参数赋值给私有变量name
   }
   public string Shout()
   {
       return "我的名字叫"+name+"喵";
   }
}
private void button1_click(object sender,EventArgs e)
{
   Cat cat = new Cat("咪咪");//传入字符串
   MessageBox.Show(cat.Shout());//调用函数
}

3、方法重载

问题:如果此时没有想好小猫的名字,实例是不是就创建不了?

解答:就目前的代码而言,如果写Cat cat = new Cat()——就会报“Cat方法没有采用0个参数的重载”的错误,原因是必须要给小猫起名字;如果真的没有名字,则可以采用方法重载

定义:方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型

⚠️并不只有构造方法可以重载,普通方法也是可以重载

⚠️方法重载时,两个方法必须要方法名相同,但参数类型或者是个数必须要不同

好处:可以在不改变原方法的基础上,新增功能

class Cat
{
   private string name="";
   public Cat(string name)
   {
       this.name=name;
   }
   public Cat()//将构造方法重载
   {
       this.name="无名";
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值