版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LT_Future/article/details/81902419
背景
一般方法实例化类时,存在的问题有:
- 赋值繁琐,重复书写对象名
- 对用户不能随意改动的只读类型的属性,在实例化之后就不能对对象进行初始化
类的构造方法
为解决上面的问题,创建构造方法
- 构造方法用来创建对象,对构造方法中对对象进行初始化
- 构造方法用来创建对象的特殊方法,方法和类名一样,没有返回值,连void都不用
- 构造方法可以有参数,实例化对象的时候传递参数即可
- 如果自己不创建构造方法,则类中有一个默认的无参构造方法
- 如果自己创建了构造方法,则不再有默认的构造方法
构造方法可以重载
代码举例
public class Student
{
public Student (string name,char gender,int age,int chinese,int math,int english)
{
this._name=name;
this._gender=gender;
this._age=age;
this._chinese=chinese;
this._math=math;
this._english=english;
}
}
代码实现
一般方法,实例化类的代码
class Program
{
static void Main(string[] args)
{
//张三
Student zsStu = new Student();
zsStu.Name = "张三";
zsStu.Age = 18;
zsStu.Gender = '男';
zsStu.Chinese = 98;
zsStu.Math = 95;
zsStu.English = 80;
//小兰
Student xlStu = new Student();
xlStu.Name = "小兰";
xlStu.Age = 18;
xlStu.Gender = '女';
xlStu.Chinese = 95;
xlStu.Math = 85;
xlStu.English = 60;
}
}
创建构造方法后,实例化类代码
class Program
{
static void Main(string[] args)
{
Student zsStu=new Student("张三",'男',18,98,95,80)
Student xlStu=new Student("小兰",'女',18,95,85,60)
Console.ReadKey();
}
}
实例化和初始化
实例化是针对类来说的,就是下面这一行代码
Student zsStu = new Student();
而初始化是针对对象的,也就是在实例化的基础上,对zsStu的各个属性赋初始值
Student zsStu = new Student();
zsStu.Name = "张三";
zsStu.Age = 18;
zsStu.Gender = '男';
zsStu.Chinese = 98;
zsStu.Math = 95;
zsStu.English = 80;
比如,实例化Person类就是知道这里有个人,而初始化一个人就是我们知道了这个人的具体信息。