如何在 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
廣告