image.png
    构造函数
    作用:帮助我们初始化对象(给对象的每个属性依次的赋值)
    构造函数是一个特殊的方法:
    1、构造函数没有返回值,连void也不能写。
    2、构造函数的名称必须跟类名一样。
    创建对象的时候会执行构造函数。

    构造函数是可以重载的。
    **

    类当中会有一个默认的无参数的构造函数,当你写一个新的构造函数后,不管是有参数的还是无参数的,那个默认的无参数的构造函数都会消失。
    image.png

    new关键字
    Person zsPerson= new Person();
    new 3个作用:
    1、在内存中开辟了一块空间。
    2、在开辟的空间中创建对象。
    3、调用对象的构建函数进行初始化对象。

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Text;
    4. namespace _050_面对对象初级_5_类的构造函数
    5. {
    6. class Student
    7. {
    8. //字段、属性、方法、构造函数
    9. public Student(string name, int age, char gender, int chinese, int math, int english)
    10. {
    11. this.Name = name;
    12. this.Age = age;
    13. this.Gender = gender;
    14. this.Chinese = chinese;
    15. this.Math = math;
    16. this.English = english;
    17. }
    18. private string _name;
    19. public string Name
    20. {
    21. get { return _name; }
    22. set { _name = value; }
    23. }
    24. private int _age;
    25. public int Age
    26. {
    27. get { return _age; }
    28. set {
    29. if (value < 0 || value > 100)
    30. {
    31. value = 0;
    32. }
    33. _age = value; }
    34. }
    35. private char _gender;
    36. public char Gender
    37. {
    38. get {
    39. if (_gender != '男' && _gender != '女')
    40. {
    41. return _gender = '×';
    42. }
    43. return _gender; }
    44. set { _gender = value; }
    45. }
    46. private int _chinese;
    47. public int Chinese
    48. {
    49. get { return _chinese; }
    50. set { _chinese = value; }
    51. }
    52. private int _math;
    53. public int Math
    54. {
    55. get { return _math; }
    56. set { _math = value; }
    57. }
    58. private int _english;
    59. public int English
    60. {
    61. get { return _english; }
    62. set { _english = value; }
    63. }
    64. public void SayHello()
    65. {
    66. Console.WriteLine("我叫{0},今天{1}岁了,是个{2}生", this.Name, this.Age, this.Gender);
    67. }
    68. public void ShouScore()
    69. {
    70. Console.WriteLine("我的总成绩是{0},平均成绩是{1}", (this.Chinese + this.Math + this.English), (this.Chinese + this.Math + this.English) / 3);
    71. }
    72. }
    73. }
    1. using System;
    2. namespace _050_面对对象初级_5_类的构造函数
    3. {
    4. class Program
    5. {
    6. static void Main(string[] args)
    7. {
    8. Student zsStudent = new Student("张三", 18, '男', 100, 100, 100);
    9. //zsStudent.Name = "张三";
    10. //zsStudent.Age = 18;
    11. //zsStudent.Gender = '男';
    12. //zsStudent.Chinese = 100;
    13. //zsStudent.Math = 100;
    14. //zsStudent.English = 100;
    15. zsStudent.SayHello();
    16. zsStudent.ShouScore();
    17. Student xlStudent = new Student("小兰", 17, '女', 99, 99, 99);
    18. //xlStudent.Name = "小兰";
    19. //xlStudent.Age = 19;
    20. //xlStudent.Gender = '女';
    21. //xlStudent.Chinese = 99;
    22. //xlStudent.Math = 99;
    23. //xlStudent.English = 99;
    24. xlStudent.SayHello();
    25. xlStudent.ShouScore();
    26. Console.ReadKey();
    27. }
    28. }
    29. }