面向对象、字段、属性、方法、构造函数
1、属性
为了保护字段,属性的本质是两个方法,一个是get(),另一个是set();
2.静态和非静态的区别
①在非静态类中,可以有实例成员,也可以有静态成员。
②在调用实例成员的时候,需要使用对象名.实例成员。
在调用静态成员的时候,需要使用类名.静态成员名。
总结:静态成员需要用类名去调用,实例成员需要用对象名去调用。
静态函数中,只能访问静态成员。
实例函数中,可以访问静态成员和实例成员。
静态类中不能用实例成员。
使用:1)如果想把类当成“工具类”去使用,可以考虑将类写成静态的
3、面向对象练习
static void Main(string[] args) { Student student = new Student(); student.Name = "test"; student.Age = 22; student.English = "99"; student.PrintChengJi(); } public class Student { private string _name; public string Name { get => _name; set => _name = value; } private int _age; public int Age { get => _age; set => _age = value; } private string _english; public string English { get => _english; set => _english = value; } public void PrintChengJi() { Console.WriteLine("你的姓名是:{0},年龄是:{1},英语成绩:{2}",this.Name,this.Age,this.English); } }
4、构造函数
构造方法用来创建对象,并且可以在构造函数中对对象进项初始化。
构造函数可以重载,也就是有多个参数不同的构造函数。
this()关键字
public Student(string name, int age, string english) { this.Name = name; this.Age = age; this.English = english; } public Student(string name) : this(name, 0, "0") { }
5、析构函数
当程序结束是析构函数才执行,作用就是帮助我们释放资源。
系统GC垃圾回收机,可以自动帮我们回收资源。
~Student() { Console.WriteLine("我是析构函数"); }