内部类的问题
为什么内部方法show 访问外部类的 age成员的时候不用通过this?
2017-06-12
通过this关键字访问的是当前类的成员属性;
package com.hwadee.day612;
//外部类HelloWorld
public class HelloWorld{
//外部类的私有属性name
private String name = "imooc";
//外部类的成员属性
int age = 20;
//成员内部类Inner
public class Inner {
String name = "爱慕课";
int age = 10;
//内部类中的方法
public void show() {
int age = 30;
System.out.println("外部类中的name:" +HelloWorld.this.name);
System.out.println("内部类中的name:" +name);
System.out.println("外部类中的age:" + HelloWorld.this.age);
System.out.println("内部类中的age:" + this.age);
System.out.println("内部类方法中的age:" + age);
}
}
//测试成员内部类
public static void main(String[] args) {
//创建外部类的对象
HelloWorld o = new HelloWorld ();
//创建内部类的对象
Inner inn =o.new Inner();
//调用内部类对象的show方法
inn.show();
}
}
当内部类方法局部变量,内部类成员变量,以及外部类的成员变量重名时;可以通过对比加深理解。
举报