/*這個只是 o.name;可能是動態(tài)靜態(tài)之分嗎,所以不能用o.name對象名加變量名來調(diào)用還是就近原則*/
//外部類HelloWorld
public class HelloWorld{
? ??
? ? //外部類的私有屬性name
? ? private String name = "imooc";
? ??
? ? //外部類的成員屬性
? ? int age = 20;
? ??
//成員內(nèi)部類Inner,這個因為外部類有屬性所以內(nèi)部類寫在第三行
public class Inner {
String name = "愛慕課";
? ? ? ? //內(nèi)部類中的方法
public void show() {?
System.out.println("外部類中的name:" +? ? ? ? ? ?HelloWorld.this.name? ? ? ?);
/*用外部類名.this.變量名來區(qū)別外部變量名和重寫的內(nèi)部變量名*/
System.out.println("內(nèi)部類中的name:" +? ? ? ? ? name? ? ? ?);
System.out.println("外部類中的age:" + age);
}
}
? ??
//測試成員內(nèi)部類
public static void main(String[] args) {
? ? ? ??
? ? ? ? //創(chuàng)建外部類的對象o
HelloWorld o = new HelloWorld ();?
? ? ? ??
? ? ? ? //創(chuàng)建內(nèi)部類的對象inn
? ? Inner inn=o.new Inner();
? ? ? /*? o.name;可能是動態(tài)靜態(tài)之分吧*/
? ? ? ? //調(diào)用內(nèi)部類對象的show方法
inn.show();
}
}
2020-05-23
o是非靜態(tài)對象,o雖然在靜態(tài)方法里面創(chuàng)建的,但是他是整個類HelloWorld的實例,所以可以直接調(diào)用name,所以o.name也沒什么動態(tài)靜態(tài)之分。
2020-04-17
o.name =>"imooc";
動靜之分用static來區(qū)分