首页 > 代码库 > 04.构造函数

04.构造函数

Ctrl+R+E  根据字段生成属性.

构造方法:
(1).构造方法是用来创建对象用的,并且可以在构造方法中对对象进行初始化.
(2).构造方法是用来创建对象的特殊方法, 构造方法的方法名和类名是一样的,
     但是构造方法是没有返回值的,连void也不要写.
(3).构造方法是可以被私有化的.  使用private来修饰构造方法  (有问题!)
(4).在创建类的时候,就应该创建构造方法,如果没有创建构造方法,
     系统默认的会有一个无参的构造方法.
(5).如果指定了构造方法,则不再有默认的无参构造函数,如果需要无参的构造函数,
     我们必须重写构造函数.
(6).这就意味着构造函数是可以被重载的.
(7).构造函数在实例化对象的时候被执行.

使用构造方法能解决:

1)在赋初值时,重复的书写对象名

2)假如我们有一个属性,不允许用户随意改动.我们一般把这个属性定义为只读类型的属性.

那么这个只读类型的属性就不能在实例化后对他赋值了,那么我们如何对他初始化呢?我们

可以通过构造方来进行初始化.

我们定义好一个类,如果没有写构造方法,那么编译器就会自动在这个类中给我们添加一个没有参数的构造方法.

一旦我们写了一个构造方法,那么编译器就不会再给我们添加这个没有参数构造方法了. 


构造方法的好处:
在实例化对象的时候,就可以对,被实例化对象指向的那个类中的属性进行赋值,
避免了代码的冗余.

关键字 new:
例子:
Perosn zsPerson=new Person();
new帮助我们做了几件事情呢?
new帮助我们做了三件事情:
(1).在内存开辟空间.
(2).在开辟的空间中创建对象.
(3).调用对象的构造函数进行初始化对象.

this关键字
this的作用:
(1).代表当前类的对象.
(2).在类中调用本类的构造函数

  1. /// <summary>
  2. /// 定义了有三个参数的构造函数
  3. /// </summary>
  4. /// <param name="name">姓名</param>
  5. /// <param name="age">年龄</param>
  6. /// <param name="gender">性别</param>
  7. public Student(string name,int age,char gender):this(name,age,gender,0,0,0) //调用了全参的构造函数
  8. {
  9. //this.Name = name;
  10. //this.Age = age; //这里就可以省略冗余代码了
  11. //this.Gender = gender;
  12. }
  13. /// <summary>
  14. /// 定义了一个有六个参数的构造函数
  15. /// </summary>
  16. /// <param name="name">姓名</param>
  17. /// <param name="age">年龄</param>
  18. /// <param name="gender">性别</param>
  19. /// <param name="chinese">语文成绩</param>
  20. /// <param name="math">数学成绩</param>
  21. /// <param name="english">英语成绩</param>
  22. public Student(string name, int age, char gender, double chinese, double math, double english)
  23. {
  24. this.Name = name;
  25. this.Age = age;
  26. this.Gender = gender;
  27. this.Chinese = chinese;
  28. this.Math = math;
  29. this.English = english;
  30. }






来自为知笔记(Wiz)


04.构造函数