靜態內部類是指在外部類中使用static關鍵字修飾的內部類。使用靜態內部類的語法格式為:
public class OuterClass {
// 外部類成員變量和方法
public static class InnerClass {
// 靜態內部類成員變量和方法
}
}
靜態內部類使用的注意事項:
示例代碼如下:
public class OuterClass {
private static int outerStaticVar = 1;
private int outerVar = 2;
public void outerMethod() {
System.out.println("OuterClass outerMethod");
}
public static class InnerClass {
private static int innerStaticVar = 3;
private int innerVar = 4;
public void innerMethod() {
System.out.println("InnerClass innerMethod");
}
public static void innerStaticMethod() {
System.out.println("InnerClass innerStaticMethod");
}
}
public static void main(String[] args) {
// 直接訪問靜態內部類的靜態變量和靜態方法
System.out.println(InnerClass.innerStaticVar);
InnerClass.innerStaticMethod();
// 創建靜態內部類的對象,并訪問其成員變量和成員方法
InnerClass innerObj = new InnerClass();
System.out.println(innerObj.innerVar);
innerObj.innerMethod();
// 外部類的對象不能直接訪問靜態內部類的成員變量和成員方法
// System.out.println(innerVar); // 編譯錯誤
// innerMethod(); // 編譯錯誤
}
}
以上代碼中,靜態內部類InnerClass
可以直接訪問外部類的靜態變量outerStaticVar
和靜態方法outerMethod
,并且可以有自己的靜態變量innerStaticVar
和靜態方法innerStaticMethod
。外部類的對象不能直接訪問靜態內部類的成員變量和成員方法,需要通過創建靜態內部類的對象來訪問。