共計(jì) 1210 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
靜態(tài)內(nèi)部類是指在外部類中使用 static 關(guān)鍵字修飾的內(nèi)部類。使用靜態(tài)內(nèi)部類的語法格式為:
public class OuterClass {// 外部類成員變量和方法
public static class InnerClass {// 靜態(tài)內(nèi)部類成員變量和方法
}
}
靜態(tài)內(nèi)部類使用的注意事項(xiàng):
- 靜態(tài)內(nèi)部類可以直接訪問外部類的靜態(tài)變量和靜態(tài)方法,但不能直接訪問外部類的非靜態(tài)變量和非靜態(tài)方法。
- 靜態(tài)內(nèi)部類可以被外部類直接訪問,不需要?jiǎng)?chuàng)建外部類的對(duì)象。
- 靜態(tài)內(nèi)部類可以有自己的靜態(tài)變量和靜態(tài)方法,與外部類的靜態(tài)變量和靜態(tài)方法不沖突。
- 外部類的對(duì)象不能直接訪問靜態(tài)內(nèi)部類的成員變量和成員方法,需要通過創(chuàng)建靜態(tài)內(nèi)部類的對(duì)象來訪問。
示例代碼如下:
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) {// 直接訪問靜態(tài)內(nèi)部類的靜態(tài)變量和靜態(tài)方法
System.out.println(InnerClass.innerStaticVar);
InnerClass.innerStaticMethod();
// 創(chuàng)建靜態(tài)內(nèi)部類的對(duì)象,并訪問其成員變量和成員方法
InnerClass innerObj = new InnerClass();
System.out.println(innerObj.innerVar);
innerObj.innerMethod();
// 外部類的對(duì)象不能直接訪問靜態(tài)內(nèi)部類的成員變量和成員方法
// System.out.println(innerVar); // 編譯錯(cuò)誤
// innerMethod(); // 編譯錯(cuò)誤
}
}
以上代碼中,靜態(tài)內(nèi)部類 InnerClass
可以直接訪問外部類的靜態(tài)變量 outerStaticVar
和靜態(tài)方法 outerMethod
,并且可以有自己的靜態(tài)變量innerStaticVar
和靜態(tài)方法innerStaticMethod
。外部類的對(duì)象不能直接訪問靜態(tài)內(nèi)部類的成員變量和成員方法,需要通過創(chuàng)建靜態(tài)內(nèi)部類的對(duì)象來訪問。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完