靜態內部類(Static Inner Class)是指定義在外部類內部的一個靜態類。靜態內部類與普通內部類的最大差別在于,靜態內部類可以直接訪問外部類的靜態成員和方法,而無需創建一個外部類的實例。
靜態內部類的定義方式和普通內部類相似,只需要在類定義前面添加 static 關鍵字即可。例如:
public class OuterClass {
// 外部類靜態變量
private static int num = 10;
// 靜態內部類
public static class InnerClass {
public void print() {
System.out.println("靜態內部類訪問外部類的靜態變量:" + num);
}
}
}
使用靜態內部類的好處在于,可以將具有獨立功能的類封裝在一起,便于組織、管理和維護代碼,同時也可以避免了外部類中代碼的冗長。靜態內部類的代碼編寫和普通類類似,可以在外部類的任何地方創建它的對象,但需要使用外部類對它進行限定,例如:
// 創建靜態內部類對象
OuterClass.InnerClass innerClass = new OuterClass.InnerClass();
// 調用靜態內部類的方法
innerClass.print();
需要注意的是,靜態內部類和普通內部類在使用時有一些區別,在創建它的對象時需要使用不同的語法,具體可參考 Java 內部類的相關文檔。