面向对象编程,英文叫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="无名";
}
}