一、静态与非静态
静态与非静态的最大的区别就是:
-
静态在程序在程序启动的那一刻会分配内存,直到程序结束运行才会释放资源
-
非静态在实例化时分配内存,每次实例化都会重新分配一次内存
二、静态类与非静态类
1.区别
| 静态类 | 非静态类 |
|---|---|
| 仅有静态成员 | 可以有实例成员,也可以有静态成员 |
| 无法实例化 | 可以实例化 |
| 无法被继承 | 可以被继承 |
2.使用
- 如果想要把一个类当作“工具类”使用,这个时候可以考虑使用静态类
- 静态类在程序生存期内一直存在,所以静态类在整个项目中资源共享
三、静态成员与实例成员
- 静态成员只被创建一次,所以只有一份;实例成员有多少个对象,就有多少份。
- 当一个成员需要被共享和反复调用的时候,定义为静态成员。
- 在静态方法中,不能直接调用实例成员。
- this/base关键字在静态方法中不能使用,因为对象可能不存在。
- 非静态类可以包含静态的方法、字段、属性或事件。
- 静态方法只能被重载,不能被重写,因为静态方法不属于类的实例成员。