一、作用:
用于创建类实例的方法被称为构造函数。
二、特点:
1. 方法名与类名相同。
2. 没有返回值类型。
3. 主要完成对象的初始化工作。
注意:构造函数没有返回值类型,而void修饰的方法表示返回值类型为空,并不代表没有返回值类型,所以不能将构造函数定义为void。
三、无参构造函数:
在默认的情况下,系统将会分配给类一个无参构造函数,并且没有方法体。
语法如下:
访问修饰符 类名() { //方法体 }
注意:在无参构造函数中给属性赋予默认值有个明显的缺点,就是对象实例化后的属性值是固定的,为满足对象多样化的需求,不得不修改代码重新给属性赋值。
四、带参构造函数:
带参构造函数可以使用参数给属性赋值,满足了对象多样化的需求。
带参构造函数的灵活性更好,通过参数来动态控制对象的特征,避免了给众多属性赋值带来麻烦。
语法如下:
访问修饰符 类名(参数列表)
{
//方法体
}
例:
public SE(sring name,int popularity)
{
this.Name=name;
this.Popularity=popularity;
}
//调用时
SE engineer=new SE(“张三”,10);
注意:调用带参构造函数一定要使传入的参数和参数列表相对应。
五、隐式构造函数:
当不给类编写构造函数时,系统将自动给类分配一个无参构造函数,称为隐式构造函数。但是在C#中一旦有了构造函数就不再自动分配构造函数。
六、方法重载:
1. 定义:
在同一个类中定义多个方法名相同,参数列表(参数个数、参数类型)不同的方法,成为方法重载。
调用时会根据实际传入参数的形式,选择与其匹配的方法执行。
构造函数的重载是方法重载的一种特殊方式。
例:
public class SE
{
//带参构造函数
public SE(string name,int popularity)
{
this.Name=name;
this.Popularity=popularity;
}
//无参构造函数
public SE(){}
}
2.特点:
1.方法名相同。
2.方法参数类型不同或者参数个数不同。
3.在同一个类中。
注意:方法名及参数列表相同的方法,仅是返回值类型不同,不能称为方法重载。