內部類在開發中不是首要選擇,但是一定會出現,現在先學習語法和使用;
一、內部類的基本概念
所謂的內部類指的是在一個類的內部繼續定義類的結構所形成的代碼形式
范例1:
內部類訪問外部類


范例2:
外部類訪問內部類


在定義內部類時會發現問題:類的組成結構為屬性和方法兩個部分,但是現在有多處一個類。
結論:
內部類的缺點:破壞了程序的結構。
內部類的優點:內部類可以方便的訪問外部類之中定義的私有成員;同理外部類也可以方便 的訪問內部類的私有成員
范例3:
升級范例1,內部類訪問外部類的私有屬性


從訪問屬性的角度上講,只要訪問類之中的屬性一定要加上“this”。在內部類訪問外部類msg屬性時,應加上“this”才算合理;但是卻無法編譯通過,因為無法找到上下文;直接使用“this.屬性”表示的是Inner類的屬性明顯錯誤,應該使用“外部類.this.屬性”才表示內部類訪問外部類的私有屬性;
范例4:
由外部操作內部類


內部類可以通過主方法直接使用,這時使用的語法如下:
外部類 .內部類 內部類對象= new 外部類(). new內部類();
原因:先實例化外部類對象,之后再實例化內部類對象,因為內部類有可能訪問外部類之中的屬性,而所有的屬性一定要在關鍵字new之后分配空間產生
如果一個內部類不想讓外部使用,只希望在內部使用,可以添加PRivate聲明內部類

二、使用static定義內部類
內部類不想受到外部類之中屬性的控制,而可以直接去實例化對象,那么在定義內部類時就可以使用static關鍵字聲明,而且使用static聲明的內部類嚴格來講就是一個外部類,只能夠調用所在外部類的static屬性;
范例5:
語法:
外部類 .內部類 內部類對象= new 外部類.內部類();


使用static修飾后的內部類,若想使用外部類的屬性則外部類屬性也應該使用static關鍵字;
四、在方法中定義內部類
理論上內部類可以在任意位置上定義,這就包括了:類中,代碼塊中,方法中;
范例6:


范例7:
在方法中定義的內部類若想訪問方法的參數或者方法定義的變量,則方法或變量前應加上一個關鍵字“final”(此處的final這是個標記并非真實使用)


新聞熱點
疑難解答