為什么在內部類調用外部類里相同變量名時出錯?
?//內部類中的方法
public void show() {?
System.out.println("外部類中的name:" + HelloWorld.this.name ? ? ? ? ? ? ? ?);
System.out.println("內部類中的name:" +name ? ? ? ? ? ? ? ? ?);
System.out.println("外部類中的age:" + age);
}
為什么System.out.println("外部類中的name:" + HelloWorld.this.name ? ? ? ? ? ? ? ?);
不能改為System.out.println("外部類中的name:" + o.this.name ? ? ? ? ? ? ? ?);
就是改為外部類的對象名。
2016-05-08
name屬于外部類變量,this.指的的外部量類名的變量name,所以前面要跟上外部類的類名HelloWolrd
2016-05-08
而o只是對象方法,不能當做類名進行使用,所要指定外部/內部.this.外部/內部變量名對應this前