內部類的作用:
-內部類提供了更好的封裝,只能讓外部類直接訪問,不允許同乙個包中的其他類直接訪問。
-內部類可以直接訪問外部類的私有屬性,內部類被當成其外部類的成員,但外部類不能訪問內部類的內部屬性。
內部類的使用場合:
由於內部類提供了封號的封裝特性,並且可以很方便的訪問外部類的屬性。所以,通常內部類在只為所在外部類提供服務的情況下優先使用。
內部類的分類:
⎧⎩⎨⎪
⎪⎪⎪⎪
⎪成員內
部類匿名
內部類局
部內部類
(用的很
少){非
靜態成員
內部類靜
態成員內
部類a、非靜態內部類
-必須寄存乙個外部類物件裡,因此,如果有乙個非靜態內部類物件那麼一定存在乙個對應的外部類物件。
-非靜態內部類不能有靜態方法、靜態屬性、靜態**塊,只能有靜態常量變數。
因為假設可以有靜態方法的話,就可以在內部類定義乙個自己的引用,外部直接呼叫,就不用建立外部類了,這與「必須寄存在乙個外部類物件裡」的設計初衷相違背,所以不允許,如果非要定義的話,直接將內部類定義成靜態的就可以了。
-靜態內部類可以看成是外部類的乙個普通成員。
b、靜態內部類
-當乙個靜態內部類存在,不一定存在對應的外部類物件。
-靜態內部類的例項方法不能訪問外部類的例項方法。
-靜態內部類看成是外部類的乙個靜態成員。
c、區域性內部類
-相當於方法中的區域性變數。
-不能用修飾符,跟區域性變數一樣,如public、protected、private、transient、static等。
-不能定義靜態變數、靜態方法。
-只在方法內部可見,不能使用方法中的區域性變數,除非是常量。
因為區域性變數與類物件的生命週期有可能不一致。
d、匿名內部類
-有三種方式:
-繼承式
-介面式
-引數式
-匿名內部類根據宣告的位置,判斷其實成員內部類還是方法內部類(區域性內部類),如果是成員內部類要遵循成員內部類的語法,如果是方法內部類要遵循方法內部類的語法。 Java學習筆記之內部類
類的第五個成員 內部類 innerclass 相當於說,我們可以在類的內部再定義類。外面的類,外部類。裡面定義的類 內部類。內部類的分類 成員內部類 宣告在類內部且方法外面 vs 區域性內部類 宣告在類的方法裡 成員內部類 區域性內部類 關於內部類需要掌握的知識 如何建立內部類物件 如何區分呼叫外部...
java學習筆記之內部類
內部類 乙個類定義在乙個類的內部 a類要直接訪問b類中的成員時,可以將a類定義到b類中,作為b類的內部類存在 訪問規則 內部類可以直接訪問外部類中的成員 外部類要訪問內部類只能建立內部類的物件 內部類有所屬,生成的class檔名稱為outer inner 內部類相當於外部類中的乙個成員,那麼就可以被...
Java學習之內部類
把類a定義在類b的內部,類a 就被稱為內部類 a 內部類可以直接訪問外部類成員,包括私有 b 外部類要訪問內部類額成員,必須建立物件 1 根據位置 成員位置 成員內部類 區域性位置 區域性內部類 2 成員內部類 外界建立物件 外部類名.內部類名 物件名 外部類物件.內部物件 3 內部類關鍵字限定 a...