一,为什么用类的构造方法?
1. 解决在赋初值时重复的书写对象名的繁琐过程。
2. 假如有个属性,不允许用户随意改动,我们一般吧这个属性定义为只读属性,那么这个只读类型的属性就不能在实例化后对他赋值了,那我们就要通过构造方法来进行初始化。
二.什么是构造方法?
构造函数是用来创建对象的特殊方法,在类里面写的方法
三.构造方法如何写?
*.方法名和类名一样,没有返回值,void都不用。
*.构造函数可以有参数,new对象时传递函数参数即可。
四.类的构造方法注意
*.如果不指定构造函数,则类有一个默认的无参构造函数,
如果指定了构造函数,则不再有默认的无参构造函数,
如果需要无参构造函数,则需要自己再写一个出来。
*.构造函数可以重载,也就是有多个参数不同的构造函数。
五,看代码理解
(自己定义的类的代码)这里有两个构造函数
public class student
{
public student(string name,char sex,int age,int chinese ,int math,int english)
{
this._name = name;//this 可以省略
_sex = sex;
_age = age;
_chinese = chinese;
_math = math;
_english = english;
//this.English = english; 这里this 点大写的English不可以,因为属性中只有get,没有set,只读不可写
}
public student(string name, char sex)
{
this._name = name;
_sex = sex;
}
string _name;//这里没写private,默认的访问修饰符就是private
public string Name
{
get { return _name; }
}
char _sex;
public char Sex
{
get {return _sex ;}
}
int _age=18;
public int Age
{
get { return _age; }
}
int _chinese;
public int Chinese
{
get { return _chinese; }
}
int _math;
public int Math
{
get { return _math; }
}
int _english;
public int English
{
get { return _english; }
}
public void show()
{
Console.WriteLine("我叫{0},我{1}岁,我{2}生,我语文{3}分,数学{4}分,英语{5}分",this .Name ,this .Age ,this.Sex ,this .Chinese ,this .Math ,this.English );
}
}
(类的实例化代码)
这里有两个实例化类的过程。最后有截图,说明“构造函数重载”
static void Main(string[] args)
{
//实例化学生类时通过构造方法对姓名,年龄,性别,语数外三门成绩进行赋值
student stu = new student("小王", '男', 19, 90, 90, 90);
stu.show();
Console.WriteLine("------------------");
//实例化学生类时通过构造方法对姓名,性别进行赋值,年龄默认18,语数外三门成绩默认0
student stu1 = new student("小李",'女');
stu1.show();
//此处为了举例子单独写的代码
student stu2=new student (
Console.ReadKey();
}
六.构造函数重载