靜態(tài)成員變量與實(shí)例變量的區(qū)別?
2022-07-28 17:24 作者:網(wǎng)星軟件 | 我要投稿
靜態(tài)變量也叫類變量,這種變量前加了static修飾符??梢灾苯佑妙惷{(diào)用,也可以用對象調(diào)用,而且所有對象的同一個類變量 都是共享同一塊內(nèi)存空間。
實(shí)例變量也叫對象變量,這種變量沒有加static修飾符。只能通過對象調(diào)用, 而且所有對象的同一個實(shí)例變量是共享不同的內(nèi)存空間的。
區(qū)別在于:
靜態(tài)變量是所有對象共有的,某一個對象將它的值改變了,其他對象再去獲取它的值,得到的是改變后的值;
實(shí)例變量則是每一個對象私有的,某一個對象將它的值改變了,不影響其他對象取值的結(jié)果,其他對象仍會得到實(shí)例變量一開始就被賦予的值。
在創(chuàng)建實(shí)例對象的時候,內(nèi)存中會為每一個實(shí)例對象的每一個非靜態(tài)成員變量開辟一段內(nèi)存空間,用來存儲這個對象所有的非靜態(tài)成員變量值。即使兩個不同的實(shí)例對象是屬于同一個類,它們的同名非靜態(tài)成員變量在內(nèi)存中占用的空間是不同的。
靜態(tài)成員變量有所不同。所有的實(shí)例對象都共用一個靜態(tài)變量,內(nèi)存中只有同一處空間存放這個靜態(tài)變量值的。因此,如果一個對象把靜態(tài)變量值改了,另外一個對象再取靜態(tài)變量值就是改過之后的值了。
標(biāo)簽: