拉風(fēng)的咖菲貓
2019-03-28 22:19:02
我寫了一個類,但是程序中沒有聲明這個類的對象。但是這個類中有個靜態(tài)的變量,我直接通過類名來操作靜態(tài)變量。。。這種情況下,這個類的構(gòu)造方法是不是就不會執(zhí)行?還有,是不是不管是不是聲明類的對象,對這個靜態(tài)變量都沒有影響?
5 回答

qq_笑_17
TA貢獻1818條經(jīng)驗 獲得超7個贊
對的, 你的理解沒有錯. 靜態(tài)變量屬于類本身, 不屬于對象, 因此直接使用類名來操作靜態(tài)變量, 是不會導(dǎo)致這個類的構(gòu)造方法執(zhí)行的.
還有,是不是不管是不是聲明類的對象,對這個靜態(tài)變量都沒有影響?
對的. 還是那句話, 靜態(tài)變量是類的屬性, 和這個類的對象沒有關(guān)系. 所有的對象都共用一個此類的靜態(tài)變量, 因此不論是否有實例化對象, 都不影響這個靜態(tài)變量的使用.

哆啦的時光機
Java程序?qū)︻惖氖褂梅绞剑?/h2>
TA貢獻1779條經(jīng)驗 獲得超6個贊
Java程序?qū)︻惖氖褂梅绞剑?/h2>主動使用
被動使用
主動使用
被動使用
所有的Java虛擬機實現(xiàn)必須在每個類或接口被Java程序首次主動使用時才初始化他們。
主動使用:
創(chuàng)建類的實例
訪問某個類或接口的靜態(tài)變量,或者對該靜態(tài)變量賦值
調(diào)用類的靜態(tài)方法
反射
初始化一個類的子類
Java虛擬機啟動是被標明為啟動類的類
除了以上六中情況,其他對類的使用都是被動使用,都不會導(dǎo)致類的初始化。當訪問一個類的編譯時靜態(tài)常量的時候,并不會導(dǎo)致類的初始化,即編譯時就已經(jīng)確定值的常量

慕尼黑8549860
TA貢獻1818條經(jīng)驗 獲得超11個贊
添加回答
舉報
0/150
提交
取消