天天看點

二、JAVA基礎--内部類總結

6.4 内部類

概念:内部類就是定義在另一個類中的類。

好處:可以通路該類的所有資料,包括私有資料。

    内部類對同個包的其他類隐藏。

一、内部類通路對象

内部類和外部類是類之間的關系,并不是每個外部類都有一個内部類的執行個體域。

内部類的對象總有一個隐式引用,指向建立它的外部類對象

隻有内部類可以是私有類,而正常類隻可以是包可見性或者是公有可見性。

二、内部類規則

可以采用outer.new Inner(...)來建立内部類

内部類聲明的所有靜态域都必須是final,而且内部類不能有static方法

編譯器會把内部類翻譯成類名為: outer$inner 的正常類

三、内部類的分類

局部内部類:

1) 局部内部類不能用public或者private聲明,它的作用域被限制在這個局部類的塊中

2) 優點:對該局部方法之外完全隐藏、不僅能通路外部類,還可以通路局部變量,不過那些局部變量必須是final。

匿名内部類:

1)匿名類不能有參數。

靜态内部類:

when:隻是為了把一個類隐藏在另一個類中,并不需要在其中引用外部類的對象。

靜态内部類除了沒有生成外部類的引用外,與其他所有内部類完全一樣。

在接口中聲明内部類自動轉為static和public

繼續閱讀