內部類就是定義在另外一個類裏面的類,如下代碼中class Inner 就是 class HelloWorld 的內部類
//外部類HelloWorld
public class HelloWorld {
// 內部類Inner,類Inner在類HelloWorld的內部
public class Inner {
// 內部類的方法
public void show() {
System.out.println("welcome to imooc!");
}
}
public static void main(String[] args) {
// 創建外部類對象
HelloWorld hello = new HelloWorld();
// 創建內部類對象
Inner i = hello.new Inner();
// 調用內部類對象的方法
i.show();
}
}
如果 內部類和外部類的變量名或方法名相同,默認使用自己的變量或方法,若要使用外部變量的需使用this 關鍵字:如下:
//外部類HelloWorld
public class HelloWorld{
//外部類的私有屬性name
private String name = "imooc";
//外部類的成員屬性
int age = 20;
//成員內部類Inner
public class Inner {
String name = "愛慕課";
//內部類中的方法
public void show() {
System.out.println("外部類中的name:" + HelloWorld.this.name );
System.out.println("內部類中的name:" + name );
System.out.println("外部類中的age:" + age);
}
}
//測試成員內部類
public static void main(String[] args) {
//創建外部類的對象
HelloWorld o = new HelloWorld ();
//創建內部類的對象
Inner inn = o.new Inner() ;
//調用內部類對象的show方法
inn.show();
}
}