zoukankan      html  css  js  c++  java
  • 静态对象与非静态对象

    Java静态对象和非静态对象有什么区别?? 

    静态对象                                                        非静态对象      
    是类共同拥有的.                                          是类独立拥有的, 
    内存空间上是固定的                                              空间在各个附属类里面分配 
    先分配静态对象的空间                                            继而再对非静态对象分配空间,也就是初始化顺序是先静态再非静态. 


    java静态对象和静态属性及静态方法又有什么区别呢? 
    这三者都和一般的对象属性和方法相似,可以将静态对象看成的静态属性.只不过楼主要注意的是在非静态方法里是不可以使用静态属性的.静态方法里也无法使用非静态属性(是属性不是参数.参数一般是指在方法里临时新建的数值或对象,属性是类声明部分声明的信息). 


    为什么先声明一个静态对象 static Lefthand left;还要在主函数中再实例化该对象呢left=new Lefthand();? 
    因为任何对象在使用之前都要进行初始化,new就是进行对象的分配空间后进行初始化. 


    java静态对象到底有什么好处?? 
    我个人的理解就是静态对象可以让相同类型的类之间共享共同的属性,这个共享是同步的,而且不用new,节省了空间


    1、静态对象的数据在全局是唯一的,一改都改。如果你想要处理的东西是整个程序中唯一的,弄成静态是个好方法。 
    2、非静态的东西你修改以后只是修改了他自己的数据,但是不会影响其他同类对象的数据。 
    3、静态对象和非静态对象都是对象,是对象都是要实例化的。不同之处就是2者的数据表现和存储方式不一样。 
    4、静态的好处: 
    引用方便。对于公用类型的变量,直接用 类名.静态方法名  或者  类名.静态变量名就可引用并且直接可以修改其属性值,不用getter和setter方法。 
    保持数据的唯一性。此数据全局都是唯一的,修改他的任何一处地方,在程序所有使用到的地方都将会体现到这些数据的修改。 
    有效减少多余的浪费。

  • 相关阅读:
    组件化的使用
    MacOS 升级后pod 出现的问题
    协议(Protocol) 和代理(Delegate)
    分类(Category)的本质 及其与类扩展(Extension) /继承(Inherit)的区别
    KVC
    KVO的使用及底层实现
    OC对象的本质及分类
    大端小端
    为什么一个指针在32位系统中占4个字节,在64位系统中占8个字节?
    quarts之Cron表达式示例
  • 原文地址:https://www.cnblogs.com/liaoliao/p/5040742.html
Copyright © 2011-2022 走看看