内部類
在類的内部定義一個新的類
-
内部類的class檔案名:外部類$内部類.class(為了區分是哪一個外部類的内部類)
好處
- 可以直接通路外部類的所有成員
- 内部類與外部類存在同名的成員時,預設是通路内部類的成員(可以通過:外部類.this.成員 指定通路成員變量)
-
私有的成員内部類隻能通過在外部類中定義一個公共的方法通路内部類
應用場景
-
如果我們在描述A事物的時候,A事物内部還維護了另外一個B事物,而且B事物還必須通路到A事物的成員,那麼這時候我們就可以使用内部類描述B事物 比如:人--心髒
類型
- 成員内部類
- 通路方式:
- 在外部類提供一個方法建立内部類的對象進行通路
- 在其他類中直接建立内部類的對象進行通路
-
格式:
外部類.内部類 變量名 = new 外部類().new 内部類();
-
- 通路方式:
- 成員内部類
image.png
- 局部内部類
- 在一個方法内部定義的類稱為内部類
- 細節: 如果局部内部類要通路局部變量,那麼局部變量必須使用final去修飾
- 在一個方法内部定義的類稱為内部類
- 匿名内部類
- 沒有類名的内部類就稱作為匿名内部類
- 使用前提:繼承或者實作
- 格式