Java内部類分為4個部分進行闡述,分别為概覽、成員内部類、局部内部類和匿名内部類。
在本文中是Java内部類的成員内部類,主要講述成員内部類的通路方式和一些細節。
成員内部類
成員内部類的通路方式
非static成員内部類
static成員内部類
外部類提供一個方法建立内部類的對象
直接建立内部類的對象
成員内部類要注意的細節
1、成員内部類的通路方式
成員内部類的通路方式,也可以了解為它的建立方式,主要分為兩種:第一種是由外部類提供一個方法,用來建立内部類的對象,第二種方法直接建立内部類的對象。
在下面的代碼當中,由OuterClass提供一個getInnerClassInstance方法,用來建立InnerClass内部類的對象。
示例代碼:
完整代碼:
直接建立成員内部類的對象,可以分為兩種情況:一種是當成員内部類被static修飾時,另一種是不被static修飾時。
當成員内部類不被static修飾時,其建立格式為:
當成員内部類被static修飾時,其建立格式為:
2、成員内部類要注意的細節
如果外部類與内部類存在同名的成員變量時,在内部類中預設情況下是通路内部類的成員變量。可以通過"外部類.this.成員變量名" 指定通路外部類的成員。
可以通過“外部類.this”通路外部類的同名“成員變量”
可以通過“外部類.this”通路外部類的同名“成員方法”
私有(private)的成員内部類隻能在外部類提供一個方法建立内部類的對象進行通路,不能在其他類建立對象了。
成員内部類一旦出現了靜态的成員,那麼該類也必須使用static修飾。
在上述代碼中,PI被聲明為static,那麼也要求将InnerClass聲明為static。
3、思維導圖