首页 > 代码库 > 03.静态和非静态的区别
03.静态和非静态的区别
静态和非静态的区别
方法,字段,属性都可以被static修饰.
(1).在非静态类中,即可有实例(非静态)成员,可以有静态成员.
静态成员和非静态成员在调用上有什么不一样呢?
(1.1)非静态成员(实例成员)必须被实例化对象之后,的对象名来调用.
对象名.实例成员名;
(1.2)静态成员必须被定义它的类的类名来调用.
类名.静态成员名; //注意,如果要在定义静态方法的类的内部使用静态
方法,我们可以省略类名.直接写.
(1.3).静态方法可以访问静态成员,但是静态方法不可以访问非静态成员(实例成员).
实例成员可以访问非静态成员(实例成员),也可以访问静态成员.
(2)在静态类中,只能允许有静态成员,不能允许出现非静态成员(实例成员).
(2.1)不允许创建静态类的对象(实例),即静态类不允许被实例化.
为什么静态类不能被实例化呢?
因为静态类中只允许有静态成员,而静态成员必须以类名.成员名的形式去
调用,所以实例化对象毫无意义.
(3)什么时候使用静态类,什么时候使用实例类呢?
(3.1)如果我们想把自己定义的某个类当成"工具类"(比如Console类)来使用,这个时 候,我们可以考虑将这个类定义成静态类.
(3.2)静态类在整个项目中,是资源共享的.
类是不占内存的,对象是占内存的,但是,静态类也占用内存的.
内存:
在计算机中我们人为的将内存分为5块.
程序员经常使用的区域是;
堆
栈
静态存储区域 静态类就在静态存储区域中.
静态类,是越多越好还是越少越好呢?
因为(1).静态类占用内存资源
(2).静态类占用的内存资源只能在程序全部结束之后,才会释放内存资源.
释放资源:
GC Garbage Collection 垃圾回收器
来自为知笔记(Wiz)
03.静态和非静态的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。