如何在 Java 中建立靜態類 Object 而不引用外部類?


靜態成員(方法/變數)屬於類,它將與類一起載入到記憶體中。您可以呼叫它而無需建立物件。(使用類名作為引用)。在整個類中只有一個靜態欄位的副本可用,即靜態欄位的值在所有物件中都相同。您可以使用 static 關鍵字定義靜態欄位。

示例

public class Sample{
   static int num = 50;
   public static void demo(){
      System.out.println("Value of num in the demo method "+ Sample.num);
   }
}
public class Demo{
   public static void main(String args[]){
      System.out.println("Value of num in the main method "+ Sample.num);
      Sample.demo();
   }
}

輸出

Value of num in the main method 50
Value of num in the demo method 50

從同一類中引用靜態成員

如果要引用類本身(在同一類中)的靜態成員,則無需引用該類,您可以直接訪問靜態成員。

示例

public class Sample{
   static int num = 50;
   public static void demo(){
      System.out.println("Value of num in the demo method "+ Sample.num);
   }
   public static void main(String args[]){
      demo();
      System.out.println(num);
   }
}

輸出

Value of num in the demo method 50

內部類

在 Java 中,您可以在類中巢狀類,它們被稱為內部類。

語法

public class Outer{
   public class Inner{
   }
}

當您在一個類中巢狀另一個類時,它就像外部類的例項成員。因此,如果宣告一個內部類為靜態的,則可以使用其名稱訪問其(內部類)的成員,如下所示:

outer_class_name.inner_class_name.members

示例

class OuterDemo {
   static int data = 200;
   static class InnerDemo {
      public static void my_method() {
         System.out.println("This is my nested class");
         System.out.println(OuterDemo.data);
      }
   }
}
public class StaticClassExample{
   public static void main(String args[]) {
      System.out.println(OuterDemo.data);
      //Outer.InnerDemo nested = new Outer.InnerDemo();
      OuterDemo.InnerDemo.my_method();
   }
}

輸出

200
This is my nested class
200

如果嘗試引用靜態內部類的(靜態)成員,則也不需要使用外部類名,您只需使用內部類名(僅)引用該成員即可。

示例

class OuterDemo {
   static int data = 200;
   static class InnerDemo {
      public static void my_method() {
         System.out.println("This is my nested class");
         System.out.println(OuterDemo.data);
      }
   }
   public static void main(String args[]) {
      System.out.println(data);
      InnerDemo.my_method();
   }
}

輸出

200
This is my nested class
200

更新於: 2020-07-02

1K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告