課程
/后端開發
/Java
/Java入門第二季 升級版
在使用eclipse進行編譯時,編譯器一直提示錯誤,但是編譯方法是正確的,為啥編譯器會提示錯誤?求大神解答
2017-03-29
源自:Java入門第二季 升級版 7-7
正在回答
靜態內部類必須通過new 外部類().成員的方式訪問非靜態成員;
比如你的12行代碼要這樣寫:syso("訪問外部類中的成員b:" + new SOuter().b );
逆風落葉
小瘦學Java 提問者 回復 逆風落葉
逆風落葉 回復 小瘦學Java 提問者
你外部的b不是靜態變量
小瘦學Java 提問者
你對成員變量b用了private修飾,導致該變量不能被任何實例對象引用,針對你的問題,有兩種改法:
?將b用public static修飾,變成靜態成員變量,這時就可以用SOuter2.b來引用它了
將SOuter2.b改為new SOuter2().b,這樣做的實質是通過new SOuter2()產生了一個SOuter2類的匿名對象,然后再通過這個匿名對象去引用成員變量b,為了讓b能夠被對象引用,你還需要將b改成public修飾
標準與或式 回復 小瘦學Java 提問者
小瘦學Java 提問者 回復 標準與或式
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
2 回答靜態內部類與方法內部類
4 回答靜態內部類的靜態方法如何訪問靜態內部類的非靜態成員?
4 回答為什么這段使用靜態內部類的程序會出錯?求解答
3 回答編譯器報錯
2 回答內部類分為:成員內部類,方法內部類,靜態內部來,匿名內部類,沒理解透
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-03-29
靜態內部類必須通過new 外部類().成員的方式訪問非靜態成員;
比如你的12行代碼要這樣寫:syso("訪問外部類中的成員b:" + new SOuter().b );
2017-04-18
你外部的b不是靜態變量
2017-04-03
你對成員變量b用了private修飾,導致該變量不能被任何實例對象引用,針對你的問題,有兩種改法:
?將b用public static修飾,變成靜態成員變量,這時就可以用SOuter2.b來引用它了
將SOuter2.b改為new SOuter2().b,這樣做的實質是通過new SOuter2()產生了一個SOuter2類的匿名對象,然后再通過這個匿名對象去引用成員變量b,為了讓b能夠被對象引用,你還需要將b改成public修飾