一 點睛
如果使用static來修飾乙個內部類,則這個內部類就屬於外部類本身,而不屬於外部類的某個物件。因此使用static修飾的內部類被稱為類內部類,也稱為靜態內部類。
static關鍵字不可修飾外部類,但可修飾內部類。
二 實戰——靜態內部類不能訪問外部類的例項成員,只能訪問外部類的類成員
1 點睛
靜態內部類可以包含靜態成員,也可以包含非靜態成員。根據靜態成員不能訪問非靜態成員的規則,靜態內部類不能訪問外部類的例項成員,只能訪問外部類的類成員。即使是靜態內部類的例項方法也不能訪問外部類的例項成員,只能訪問外部類的靜態成員。
2 **
public class staticinnerclasstest
}}
3 說明
accessouterprop是乙個例項方法,但依然不能訪問外部類的prop1成員變數,因為這是例項變數。但可以訪問prop2,因為它是靜態成員變數。
三 實戰——外部類使用靜態內部類
1 點睛
靜態內部類是外部類的乙個靜態成員,因此外部類的所有方法、所有初始化塊可以使用靜態內部類來定義變數、建立物件。
外部類依然不能直接訪問靜態內部類的成員,但可以使用靜態內部類的類名作為呼叫者來訪問靜態內部類的類成員,也可以使用靜態內部類物件作為呼叫者來訪問靜態內部類的例項成員。
2 **
public class accessstaticinnerclass
public void accessinnerprop()
}
Java內部類 靜態內部類
靜態內部類是外部類的靜態成員,不依賴於外部類的物件而存在,因此在外部類外面建立靜內部類物件時不需要首先建立外部類的物件 靜態內部類也可以稱為靜態巢狀類或頂級巢狀類。靜態內部類與外部類物件之間不存在著對成員的共享關係,靜態內部類其實已經脫離了外部類的控制 static關鍵字只是說明其在建立物件的時候不...
Java內部類之靜態內部類
靜態內部類 巢狀內部類 內部類定義時加上static關鍵字。可以使用public protected default private修飾符。只可以訪問外部類的靜態成員和靜態方法,包括了私有的靜態成員和方法。生成靜態內部類物件的方式為 outerclass.innerclass innerobj ne...
內部類 靜態內部類
static可以修飾內部類,通常用來給外部類賦值 例如 建造者模式 靜態內部類不能使用外部類非靜態的屬性,必須用物件名呼叫 在外部類中 建立靜態內部類可以直接建立,不需要建立外部類 不能使用成員內部類的方式建立靜態內部類物件 內部類 物件名 new 內部類 外部類.內部類 物件名 new 外部類.內...