課程
/后端開發
/Java
/Java入門第二季 升級版
靜態內部類的成員是靜態的嗎?
2015-09-21
源自:Java入門第二季 升級版 7-7
正在回答
靜態內部類的成員可以是靜態的 也可以是非靜態的, 比如 主函數就是靜態的,你在主函數當中可以定義int x=0;
但是如果一個內部類里面有靜態成員,那么該內部類必須是靜態的,因為靜態成員會在外部類加載時就加載,這要求了內部類也必須加載,所以內部類也必須靜態化
SungJoe 提問者
不一定,你可以把靜態類與靜態方法類比著看,靜態方法里是有非靜態成員的,靜態類也一樣。
其實靜態并不是指它本身有何特殊,而是定義了 這個方法最好是用類去調用(而非對象,當然對象也是能調用的),或者這個內部類也是要通過外部類(而非對象)去創建實例的。正因為如此,有的時候我們才會感覺static難以理解,像是static方法不能調用非static方法,是因為如果是類去調用這個static方法,也就沒有對象,自然不能調用非靜態的方法。
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
2 回答靜態內部類
1 回答內部類與外部類,靜態和非靜態
4 回答靜態內部類的靜態方法如何訪問靜態內部類的非靜態成員?
2 回答靜態內部類與方法內部類
4 回答靜態內部類實例
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-09-21
靜態內部類的成員可以是靜態的 也可以是非靜態的, 比如 主函數就是靜態的,你在主函數當中可以定義int x=0;
但是如果一個內部類里面有靜態成員,那么該內部類必須是靜態的,因為靜態成員會在外部類加載時就加載,這要求了內部類也必須加載,所以內部類也必須靜態化
2015-09-21
不一定,你可以把靜態類與靜態方法類比著看,靜態方法里是有非靜態成員的,靜態類也一樣。
其實靜態并不是指它本身有何特殊,而是定義了 這個方法最好是用類去調用(而非對象,當然對象也是能調用的),或者這個內部類也是要通過外部類(而非對象)去創建實例的。正因為如此,有的時候我們才會感覺static難以理解,像是static方法不能調用非static方法,是因為如果是類去調用這個static方法,也就沒有對象,自然不能調用非靜態的方法。