第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java中空引用上的靜態(tài)字段

Java中空引用上的靜態(tài)字段

qq_笑_17 2019-10-26 13:32:15
staticJava中的成員(static字段或static方法)與它們各自的類相關(guān)聯(lián),而不是與此類的對象相關(guān)聯(lián)。以下代碼嘗試訪問null引用上的靜態(tài)字段。public class Main{    private static final int value = 10;    public Main getNull()    {        return null;    }    public static void main(String[] args)    {        Main main=new Main();        System.out.println("value = "+main.getNull().value);    }}盡管main.getNull()返回null,但它仍然有效并顯示value = 10。此代碼如何工作?
查看完整描述

3 回答

?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊

該行為在Java語言規(guī)范中指定:

空引用可用于訪問類(靜態(tài))變量,而不會引起異常。

更詳細(xì)地講,進(jìn)行靜態(tài)評估,例如Primary.staticField以下工作(重點(diǎn)是我的工作)-在您的情況下Primary = main.getNull()

  • 計算主表達(dá)式,并丟棄結(jié)果。[...]

  • 如果該字段是非空白的final字段,則結(jié)果是在類或接口中指定的類變量的值,該變量是Primary表達(dá)式的類型。[...]


查看完整回答
反對 回復(fù) 2019-10-26
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個贊

正如您所說,因?yàn)殪o態(tài)字段不與實(shí)例關(guān)聯(lián)。


從實(shí)例引用訪問靜態(tài)字段的能力(就像您正在做的那樣)僅僅是一種語法糖,沒有其他意義。

您的代碼編譯為


main.getNull(); 

Main.value


查看完整回答
反對 回復(fù) 2019-10-26
?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個贊

每當(dāng)您在編譯時使用對象訪問靜態(tài)變量或方法時,它都會轉(zhuǎn)換為Class名稱。例如:


Main main = null;

System.out.println(main.value);

它將打印靜態(tài)變量value的值,因?yàn)樵诰幾g時它將被轉(zhuǎn)換為


System.out.println(Main.value);

證明:


下載反編譯器并將您的.class文件反編譯為.java文件,您會看到所有靜態(tài)方法或變量引用的對象名將自動替換為類名。


查看完整回答
反對 回復(fù) 2019-10-26
  • 3 回答
  • 0 關(guān)注
  • 420 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號