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