5.静态与非静态成员的区别?static
1)、在非静态类下,既可以定义非静态方法也可以定义静态方法
如何调用非静态方法?首先创建类的实例对象,再对象点方法,或者this点
如何调用静态方法?必须类名点方法
总结:静态成员必须要类名调用,非静态方法必须用对象调用
静态函数中只能访问静态成员,不能访问非静态成员
非静态函数既能访问静态成员又能访问非静态成员
2)、静态类中只能写静态成员,且静态类不能创建对象
3)、什么时候使用静态类、什么时候使用非静态类?
1.如果你想要你的类当做一个工具类(经常使用),封装到一个静态类中,直接类名点成员调用。
2.静态类在整个项目中资源共享。 堆、栈、静态存储区
释放资源:GC Garbage Collection 垃圾回收器
静态类在项目中不要太多,占资源
6.构造函数:帮助我们初始化对象(给对象的每一个属性依次赋值)
构造函数是一个特殊的方法:
1)、构造函数没有返回值,连void也不能写
2)、构造函数的名称必须跟类名一致
创建类的对象时会调用构造函数,为属性赋值;且可以重载
***类当中会有一个默认的无参数的构造函数,当你创建一个新的构造函数时,原来就被代替了
例如:
构造函数写法
Public Student(string name,int age,char gender)
{
This.Name=name;
This.Age=age;
This.Gender=gender;
}
实例对象时传参数,完成对对象的实例化
Student student1=new student(‘张安’,18,‘男’)
7.new关键字:1)、在内存中开辟一块空间
2)、在开辟的空间中创建对象
3)、调用对象的构造函数初始化对象
8、this关键字
1)、表示当前类的对象
2)、在类中显式的调用本类的构造函数
语法 :this()
例如: Public Student(string name,int age,char gender,int score)
{
This.Name=name;
This.Age=age;
This.Gender=gender;
}
Public Student ( string name, int score):this(name,0,’男’,100){
}
9.析构函数:
语法:~Student(){console.writeline(“析构函数,释放存储”)}
作用:程序结束时调用析构函数,释放内存