課程
/后端開發(fā)
/Java
/Java入門第二季
之前學習的時候不是說類是客觀不存在的 必須實例化成對象嗎?
為什么靜態(tài)變量就可以直接用類名.變量名來訪問呢?
2016-08-09
源自:Java入門第二季 8-9
正在回答
?????? 靜態(tài)變量屬于靜態(tài)存儲方式,其存儲空間為內(nèi)存中的靜態(tài)數(shù)據(jù)區(qū)(在 靜態(tài)存儲區(qū)內(nèi)分配存儲單元),該區(qū)域中的數(shù)據(jù)在整個程序的運行期間一直占用這些存儲空間(在程序整個運行期間都不釋放),也可以認為是其內(nèi)存地址不變,直 到整個程序運行結(jié)束。靜態(tài)變量雖在程序的整個執(zhí) 行過程中始終存在,但是在它作用域之外不能使用。
靜態(tài)變量和普通變量的區(qū)別:
1、首先類的靜態(tài)成員變量為類的全局變量,并不為類的對象所擁有。
2、而類的普通成員變量通過類生成對象后是屬于生成對象的變?yōu)榇藢ο笏赜?,不能與其它生成的對象所共有。如下圖所示,兩個對象a,b的成員變量x并不是相同的。
3、靜態(tài)成員變量需要在全局定義
4、普通成員變量是屬于某個對象的,不需進行全局定義。
5、訪問類的靜態(tài)成員變量可以通過如下形式
如類A中定義了靜態(tài)成員變量x,形式為類名::變量名
6、類的靜態(tài)成員變量在對象還沒有產(chǎn)生前就已經(jīng)存在了。
因為靜態(tài)變量在程序運行期間一直存在,所以可以直接訪問。
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會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號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-08-09
?????? 靜態(tài)變量屬于靜態(tài)存儲方式,其存儲空間為內(nèi)存中的靜態(tài)數(shù)據(jù)區(qū)(在 靜態(tài)存儲區(qū)內(nèi)分配存儲單元),該區(qū)域中的數(shù)據(jù)在整個程序的運行期間一直占用這些存儲空間(在程序整個運行期間都不釋放),也可以認為是其內(nèi)存地址不變,直 到整個程序運行結(jié)束。靜態(tài)變量雖在程序的整個執(zhí) 行過程中始終存在,但是在它作用域之外不能使用。
靜態(tài)變量和普通變量的區(qū)別:
1、首先類的靜態(tài)成員變量為類的全局變量,并不為類的對象所擁有。
2、而類的普通成員變量通過類生成對象后是屬于生成對象的變?yōu)榇藢ο笏赜?,不能與其它生成的對象所共有。如下圖所示,兩個對象a,b的成員變量x并不是相同的。
3、靜態(tài)成員變量需要在全局定義
4、普通成員變量是屬于某個對象的,不需進行全局定義。
5、訪問類的靜態(tài)成員變量可以通過如下形式
如類A中定義了靜態(tài)成員變量x,形式為類名::變量名
6、類的靜態(tài)成員變量在對象還沒有產(chǎn)生前就已經(jīng)存在了。
因為靜態(tài)變量在程序運行期間一直存在,所以可以直接訪問。