Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路程式設計

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java APIs 和框架

Java 類參考

Java 有用資源

Java - 靜態類



在 Java 中,靜態類的概念是在內部類的概念下引入的,內部類是專門為中某些精細的功能而設計的。

Java 靜態類

Java 中的靜態類只允許用於在其他類中定義的內部類,不允許使用靜態外部類,這意味著我們不能在外部類中使用 static 關鍵字。

靜態類的定義與 Java 中其他內部類相同,只是在其名稱前面加上了 static 關鍵字。這些類具有一些獨特的特性,使它們與其他非靜態內部類有所不同。

Java 靜態類的特性

以下是 Java 中靜態類的特性:

  • 靜態類不需要建立外部包含類的例項即可建立自己的例項。

  • 靜態類只能訪問外部包含類的成員(變數/方法),前提是這些成員的性質是靜態的。這意味著靜態巢狀類無法訪問外部類的例項變數和方法。

Java 靜態類的語法

靜態巢狀類的語法如下:

class MyOuter {
   static class Nested_Demo {
   }
}

例項化靜態巢狀類與例項化內部類略有不同。下面的程式展示瞭如何在多種情況下使用靜態巢狀類。

Java 靜態類的示例

在這個例子中,我們建立了一個類 Outer 和一個在其內部的靜態內部類 NestedDemo。在 main() 方法中,我們直接使用靜態類的靜態方法,無需任何引用,因為 main 是 Outer 類的一部分。

package com.tutorialspoint;

public class Outer {
   static class NestedDemo {
      public static void print() {
         System.out.println("This is my nested class");
      }
   }
   
   public static void main(String args[]) {
      NestedDemo.print();
   }
}

如果你編譯並執行上面的程式,你會得到以下結果:

輸出

This is my nested class

Java 靜態類:更多示例

示例 1

在這個例子中,我們建立了一個類 Outer 和一個在其內部的靜態內部類 NestedDemo。由於 main 方法在不同的類中,我們使用 Outer 類訪問靜態內部類。

package com.tutorialspoint;

public class Tester {
   public static void main(String[] arguments) {
	   Outer.NestedDemo.print();
   }
}

class Outer {
   static class NestedDemo {
      public static void print() {
         System.out.println("This is my nested class");
      }
   }
}

如果你編譯並執行上面的程式,你會得到以下結果:

輸出

This is my nested class

示例 2

在這個例子中,我們建立了一個類 Outer 和一個在其內部的靜態內部類 NestedDemo。現在,由於靜態類具有例項方法,並且 main 方法在不同的類中,我們使用 Outer 類物件訪問靜態內部類。

package com.tutorialspoint;

public class Tester {
   public static void main(String[] arguments) {
	   new Outer.NestedDemo().print();
   }
}

class Outer {
   static class NestedDemo {
      public void print() {
         System.out.println("This is my nested class");
      }
   }
}

如果你編譯並執行上面的程式,你會得到以下結果:

輸出

This is my nested class
廣告