課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
之前學(xué)習(xí)的時(shí)候不是說類是客觀不存在的 必須實(shí)例化成對象嗎?
為什么靜態(tài)變量就可以直接用類名.變量名來訪問呢?
2016-08-09
源自:Java入門第二季 升級版 8-9
正在回答
?????? 靜態(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í) 行過程中始終存在,但是在它作用域之外不能使用。
靜態(tài)變量和普通變量的區(qū)別:
1、首先類的靜態(tài)成員變量為類的全局變量,并不為類的對象所擁有。
2、而類的普通成員變量通過類生成對象后是屬于生成對象的變?yōu)榇藢ο笏赜校荒芘c其它生成的對象所共有。如下圖所示,兩個(gè)對象a,b的成員變量x并不是相同的。
3、靜態(tài)成員變量需要在全局定義
4、普通成員變量是屬于某個(gè)對象的,不需進(jìn)行全局定義。
5、訪問類的靜態(tài)成員變量可以通過如下形式
如類A中定義了靜態(tài)成員變量x,形式為類名::變量名
6、類的靜態(tài)成員變量在對象還沒有產(chǎn)生前就已經(jīng)存在了。
因?yàn)殪o態(tài)變量在程序運(yùn)行期間一直存在,所以可以直接訪問。
舉報(bào)
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
2 回答可以通過 類名.靜態(tài)變量 訪問靜態(tài)變量 也可以通過 對象.靜態(tài)變量 訪問靜態(tài)變量。也可以直接通過靜態(tài)變量名訪問嗎
2 回答請問怎么通過“類名.靜態(tài)變量”訪問靜態(tài)變量
4 回答訪問靜態(tài)變量,輸出班級名稱 為什么不能用類名訪問
3 回答靜態(tài)內(nèi)部類變量和外部類非靜態(tài)變量重名怎么辦
3 回答一定要使用類名或者對象名訪問靜態(tài)變量嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
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í) 行過程中始終存在,但是在它作用域之外不能使用。
靜態(tài)變量和普通變量的區(qū)別:
1、首先類的靜態(tài)成員變量為類的全局變量,并不為類的對象所擁有。
2、而類的普通成員變量通過類生成對象后是屬于生成對象的變?yōu)榇藢ο笏赜校荒芘c其它生成的對象所共有。如下圖所示,兩個(gè)對象a,b的成員變量x并不是相同的。
3、靜態(tài)成員變量需要在全局定義
4、普通成員變量是屬于某個(gè)對象的,不需進(jìn)行全局定義。
5、訪問類的靜態(tài)成員變量可以通過如下形式
如類A中定義了靜態(tài)成員變量x,形式為類名::變量名
6、類的靜態(tài)成員變量在對象還沒有產(chǎn)生前就已經(jīng)存在了。
因?yàn)殪o態(tài)變量在程序運(yùn)行期間一直存在,所以可以直接訪問。