03.静态和非静态的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03.静态和非静态的区别相关的知识,希望对你有一定的参考价值。
静态和非静态的区别方法,字段,属性都可以被static修饰.
(1).在非静态类中,即可有实例(非静态)成员,可以有静态成员.
静态成员和非静态成员在调用上有什么不一样呢?
(1.1)非静态成员(实例成员)必须被实例化对象之后,的对象名来调用.
对象名.实例成员名;
(1.2)静态成员必须被定义它的类的类名来调用.
类名.静态成员名; //注意,如果要在定义静态方法的类的内部使用静态
方法,我们可以省略类名.直接写.
(1.3).静态方法可以访问静态成员,但是静态方法不可以访问非静态成员(实例成员).
实例成员可以访问非静态成员(实例成员),也可以访问静态成员.
(2)在静态类中,只能允许有静态成员,不能允许出现非静态成员(实例成员).
(2.1)不允许创建静态类的对象(实例),即静态类不允许被实例化.
为什么静态类不能被实例化呢?
因为静态类中只允许有静态成员,而静态成员必须以类名.成员名的形式去
调用,所以实例化对象毫无意义.
(3)什么时候使用静态类,什么时候使用实例类呢?
(3.1)如果我们想把自己定义的某个类当成"工具类"(比如Console类)来使用,这个时 候,我们可以考虑将这个类定义成静态类.
(3.2)静态类在整个项目中,是资源共享的.
类是不占内存的,对象是占内存的,但是,静态类也占用内存的.
内存:
在计算机中我们人为的将内存分为5块.
程序员经常使用的区域是;
堆
栈
静态存储区域 静态类就在静态存储区域中.
静态类,是越多越好还是越少越好呢?
因为(1).静态类占用内存资源
(2).静态类占用的内存资源只能在程序全部结束之后,才会释放内存资源.
释放资源:
GC Garbage Collection 垃圾回收器
以上是关于03.静态和非静态的区别的主要内容,如果未能解决你的问题,请参考以下文章