面向对象基本概念总结归纳
1.静态和非静态的区别:
1.)在非静态类中
- 在非静态类中,既可以有实例成员(非静态成员),也可以有静态成员
- 在调用实例成员的时候,需要使用 对象名.实例成员
- 在调用静态成员时,需要用类名.静态成员
- 静态函数中,只能访问静态成员,不允许访问实例成员(成员包括 字段,属性,方法)
- 实例方法中,既可以使用静态成员,也可以用实例成员.
2.)静态类
- 静态类中只允许出现静态成员,不允许出现实例成员
3.)关于静态类和非静态类的选择使用
建议静态类使用越少越好,因为静态类存储在内存中的静态存储区,静态类在整个项目中都是资源共享的,只有在程序运行结束后,静态类才会释放资源
但若是想把类当作一个"工具类"去使用,这个时候可以将类写成静态类
2.构造函数:创建对象的时候会执行构造函数
作用:
1.)用来帮助我们初始化对象(给对象每个属性依次赋值)
2.)构造函数是一个特殊的方法
- 无返回值,连void也不能写
- 名称必须和类名一致
值得注意的一点是:构造函数可以重载,而且必须是public
3.new关键字
e.g. Person zs=new Person();
new帮我们做了三件事儿:
- 在内存中开辟一块空间
- 在开辟的空间中创造对象
- 调用对象的构造函数来初始化对象
4.this关键字
- 代表当前这个类的对象
- 在类中显示地调用本类的构造函数
语法: :this()
简单举例如下:
public Person(string name,int age,double score)
{
this.Name=name;
this.Age=age;
this.Score=score;
}
public Person(string name,int age:this(name,age,0)
{
}
5.析构函数
语法为:
~类名(){}
执行顺序:当程序结束的时候,调用析构函数,作用是为了释放资源
备注:.net中GC(Garbage Collection)垃圾回收器会释放资源,但我们如果想立马释放资源,我们可以用析构函数来实现