java學習筆記之內部類

2021-07-05 08:47:12 字數 1167 閱讀 4902

內部類的作用:

-內部類提供了更好的封裝,只能讓外部類直接訪問,不允許同乙個包中的其他類直接訪問。

-內部類可以直接訪問外部類的私有屬性,內部類被當成其外部類的成員,但外部類不能訪問內部類的內部屬性。

內部類的使用場合:

由於內部類提供了封號的封裝特性,並且可以很方便的訪問外部類的屬性。所以,通常內部類在只為所在外部類提供服務的情況下優先使用。

內部類的分類:

⎧⎩⎨⎪

⎪⎪⎪⎪

⎪成員內

部類匿名

內部類局

部內部類

(用的很

少){非

靜態成員

內部類靜

態成員內

部類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...