Java靜態對象和非靜態對象有什么區別??
靜態對象 非靜態對象
是類共同擁有的. 是類獨立擁有的,
內存空間上是固定的 空間在各個附屬類里面分配
先分配靜態對象的空間 繼而再對非靜態對象分配空間,也就是初始化順序是先靜態再非靜態.
java靜態對象和靜態屬性及靜態方法又有什么區別呢?
這三者都和一般的對象屬性和方法相似,可以將靜態對象看成的靜態屬性.只不過樓主要注意的是在非靜態方法里是不可以使用靜態屬性的.靜態方法里也無法使用非靜態屬性(是屬性不是參數.參數一般是指在方法里臨時新建的數值或對象,屬性是類聲明部分聲明的信息).
為什么先聲明一個靜態對象 static Lefthand left;還要在主函數中再實例化該對象呢left=new Lefthand();?
因為任何對象在使用之前都要進行初始化,new就是進行對象的分配空間后進行初始化.
java靜態對象到底有什么好處??
我個人的理解就是靜態對象可以讓相同類型的類之間共享共同的屬性,這個共享是同步的,而且不用new,節省了空間
1、靜態對象的數據在全局是唯一的,一改都改。如果你想要處理的東西是整個程序中唯一的,弄成靜態是個好方法。
2、非靜態的東西你修改以后只是修改了他自己的數據,但是不會影響其他同類對象的數據。
3、靜態對象和非靜態對象都是對象,是對象都是要實例化的。不同之處就是2者的數據表現和存儲方式不一樣。
4、靜態的好處:
引用方便。對於公用類型的變量,直接用 類名.靜態方法名 或者 類名.靜態變量名就可引用並且直接可以修改其屬性值,不用getter和setter方法。
保持數據的唯一性。此數據全局都是唯一的,修改他的任何一處地方,在程序所有使用到的地方都將會體現到這些數據的修改。
有效減少多余的浪費。