這期內容當中小編將會給大家?guī)碛嘘PJava中靜態(tài)內部類如何使用,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
網站建設哪家好,找創(chuàng)新互聯(lián)建站!專注于網頁設計、網站建設、微信開發(fā)、小程序開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了徐州免費建站歡迎大家使用!
一 點睛
如果使用static來修飾一個內部類,則這個內部類就屬于外部類本身,而不屬于外部類的某個對象。因此使用static修飾的內部類被稱為類內部類,也稱為靜態(tài)內部類。
static關鍵字不可修飾外部類,但可修飾內部類。
二 實戰(zhàn)——靜態(tài)內部類不能訪問外部類的實例成員,只能訪問外部類的類成員
1 點睛
靜態(tài)內部類可以包含靜態(tài)成員,也可以包含非靜態(tài)成員。根據(jù)靜態(tài)成員不能訪問非靜態(tài)成員的規(guī)則,靜態(tài)內部類不能訪問外部類的實例成員,只能訪問外部類的類成員。即使是靜態(tài)內部類的實例方法也不能訪問外部類的實例成員,只能訪問外部類的靜態(tài)成員。
2 代碼
public class StaticInnerClassTest{ private int prop1 = 5; private static int prop2 = 9; static class StaticInnerClass { // 靜態(tài)內部類里可以包含靜態(tài)成員 private static int age; public void accessOuterProp() { // 下面代碼出現(xiàn)錯誤: // 靜態(tài)內部類無法訪問外部類的實例變量 //System.out.println(prop1); // 下面代碼正常 System.out.println(prop2); } }}
3 說明
accessOuterProp是一個實例方法,但依然不能訪問外部類的prop1成員變量,因為這是實例變量。但可以訪問prop2,因為它是靜態(tài)成員變量。
三 實戰(zhàn)——外部類使用靜態(tài)內部類
1 點睛
靜態(tài)內部類是外部類的一個靜態(tài)成員,因此外部類的所有方法、所有初始化塊可以使用靜態(tài)內部類來定義變量、創(chuàng)建對象。
外部類依然不能直接訪問靜態(tài)內部類的成員,但可以使用靜態(tài)內部類的類名作為調用者來訪問靜態(tài)內部類的類成員,也可以使用靜態(tài)內部類對象作為調用者來訪問靜態(tài)內部類的實例成員。
2 代碼
public class AccessStaticInnerClass{ static class StaticInnerClass { private static int prop1 = 5; private int prop2 = 9; } public void accessInnerProp() { // System.out.println(prop1); // 上面代碼出現(xiàn)錯誤,應改為如下形式: // 通過類名訪問靜態(tài)內部類的類成員 System.out.println(StaticInnerClass.prop1); // System.out.println(prop2); // 上面代碼出現(xiàn)錯誤,應改為如下形式: // 通過實例訪問靜態(tài)內部類的實例成員 System.out.println(new StaticInnerClass().prop2); }}
上述就是小編為大家分享的Java中靜態(tài)內部類如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。