Java 中靜態類和非靜態內部類有什麼區別?


以下是內部類和靜態內部類之間顯著區別。

訪問外部類成員

靜態內部類可以直接訪問外部類的靜態成員。但是,要訪問外部類的例項成員,你需要例項化外部類。

示例

public class Outer {
   int num = 234;
   static int data = 300;
   public static class Inner{
      public static void main(String args[]){
         Outer obj = new Outer();
         System.out.println(obj.num);
         System.out.println(data);
      }
   }
}

輸出

234
300

非內部類可以直接訪問其外部類(例項和靜態)成員,無需例項化。

示例

線上示例

public class Outer2 {
   int num = 234;
   static int data =300;
   public class Inner{
      public void main(){
         System.out.println(num);
         System.out.println(data);
      }
   }
   public static void main(String args[]){
      new Outer2().new Inner().main();
   }
}

輸出

234
300

在內部類中擁有靜態成員

不能對非靜態內部類的成員設定靜態。靜態方法只允許出現在頂級類和靜態內部類中。

更新時間: 16-6-2020

782 次瀏覽

開啟您的 職業生涯

完成課程認證

入門
廣告
© . All rights reserved.