//外部類InnerClass1
public class InnerClass1{
//外部類的私有屬性name
private String name = "Inner";
//外部類的成員屬性
int age = 20;
//成員內部類Inner
//Inner 類可以使用任意訪問控制符,如 public 、 protected 、 private 等
//Inner 類中定義的 show() 方法可以直接訪問 InnerClass1 類中的數據,而不受訪問控制符的影響,如直接訪問 Outer 類中的私有屬性
//定義了成員內部類後,必須使用外部類對象來創建內部類對象,而不能直接去 new 一個內部類對象,即:內部類 對象名 = 外部類對象.new 內部類( );
public class Inner {
String name = "內部類變量";
//內部類中的方法
public void show() {
// 如果外部類和內部類具有相同的成員變量或方法,內部類默認訪問自己的成員變量或方法,如果要訪問外部類的成員變量,可以使用 this 關鍵字。
System.out.println("外部類中的name:" + InnerClass1.this.name );
System.out.println("內部類中的name:" + name );
System.out.println("外部類中的age:" + age);
}
}
//測試成員內部類
public static void main(String[] args) {
//創建外部類的對象
InnerClass1 o = new InnerClass1 ();
//創建內部類的對象
Inner inn = o.new Inner();
//調用內部類對象的show方法
inn.show();
}
}
運行結果:
外部類中的name:Inner
內部類中的name:內部類變量
外部類中的age:20