java內部類和靜態內部類的區別


1 相同點

使用的時候,import的時候,除了包名,還要帶外部類。

2 不同點

2.1 對象創建的方式不同

靜態內部類創建對象的時候,獨立於外部類及其對象,就好像它是一個獨立的類,可以和外部類一樣使用。

內部類創建對象的時候,不能獨立於外部類,必須要先創建外部類的對象,然后再用這個對象來new出內部類的對象。

2.2 內部類不可以有非常量的靜態成員

原因很簡單,靜態成員可以不依賴於對象使用,如果內部類有靜態成員的話,就相當於外部類對象直接調用內部類的靜態成員,一個是對象,一個是類,不倫不類的。

所以,要給內部類的定義靜態成員,必須要使用靜態內部類。

報錯

The field instance cannot be declared static in a non-static inner type, unless initialized with a constant expression

就算是內部類用了靜態的常量,也沒有什么用,在外面也不能脫離了內部類對象訪問。

 

 

 

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM