/*這個只是 o.name;可能是動態靜態之分嗎,所以不能用o.name對象名加變量名來調用還是就近原則*/
//外部類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? ? ? ?);
/*用外部類名.this.變量名來區別外部變量名和重寫的內部變量名*/
System.out.println("內部類中的name:" +? ? ? ? ? name? ? ? ?);
System.out.println("外部類中的age:" + age);
}
}
? ??
//測試成員內部類
public static void main(String[] args) {
? ? ? ??
? ? ? ? //創建外部類的對象o
HelloWorld o = new HelloWorld ();?
? ? ? ??
? ? ? ? //創建內部類的對象inn
? ? Inner inn=o.new Inner();
? ? ? /*? o.name;可能是動態靜態之分吧*/
? ? ? ? //調用內部類對象的show方法
inn.show();
}
}
2020-05-23
o是非靜態對象,o雖然在靜態方法里面創建的,但是他是整個類HelloWorld的實例,所以可以直接調用name,所以o.name也沒什么動態靜態之分。
2020-04-17
o.name =>"imooc";
動靜之分用static來區分