為什么靜態(tài)變量可以直接用類(lèi)名.變量名來(lái)訪(fǎng)問(wèn)?
之前學(xué)習(xí)的時(shí)候不是說(shuō)類(lèi)是客觀不存在的 必須實(shí)例化成對(duì)象嗎?
為什么靜態(tài)變量就可以直接用類(lèi)名.變量名來(lái)訪(fǎng)問(wèn)呢?
之前學(xué)習(xí)的時(shí)候不是說(shuō)類(lèi)是客觀不存在的 必須實(shí)例化成對(duì)象嗎?
為什么靜態(tài)變量就可以直接用類(lèi)名.變量名來(lái)訪(fǎng)問(wèn)呢?
2016-08-09
舉報(bào)
2016-08-09
?????? 靜態(tài)變量屬于靜態(tài)存儲(chǔ)方式,其存儲(chǔ)空間為內(nèi)存中的靜態(tài)數(shù)據(jù)區(qū)(在 靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元),該區(qū)域中的數(shù)據(jù)在整個(gè)程序的運(yùn)行期間一直占用這些存儲(chǔ)空間(在程序整個(gè)運(yùn)行期間都不釋放),也可以認(rèn)為是其內(nèi)存地址不變,直 到整個(gè)程序運(yùn)行結(jié)束。靜態(tài)變量雖在程序的整個(gè)執(zhí) 行過(guò)程中始終存在,但是在它作用域之外不能使用。
靜態(tài)變量和普通變量的區(qū)別:
1、首先類(lèi)的靜態(tài)成員變量為類(lèi)的全局變量,并不為類(lèi)的對(duì)象所擁有。
2、而類(lèi)的普通成員變量通過(guò)類(lèi)生成對(duì)象后是屬于生成對(duì)象的變?yōu)榇藢?duì)象所特有,不能與其它生成的對(duì)象所共有。如下圖所示,兩個(gè)對(duì)象a,b的成員變量x并不是相同的。
3、靜態(tài)成員變量需要在全局定義
4、普通成員變量是屬于某個(gè)對(duì)象的,不需進(jìn)行全局定義。
5、訪(fǎng)問(wèn)類(lèi)的靜態(tài)成員變量可以通過(guò)如下形式
如類(lèi)A中定義了靜態(tài)成員變量x,形式為類(lèi)名::變量名
6、類(lèi)的靜態(tài)成員變量在對(duì)象還沒(méi)有產(chǎn)生前就已經(jīng)存在了。
因?yàn)殪o態(tài)變量在程序運(yùn)行期間一直存在,所以可以直接訪(fǎng)問(wèn)。