class Outer {
public int num = 10;
class Inner {
public int num = 20;
public void show() {
int num = 30;
System.out.println(?); //num
System.out.println(??); //this.num
System.out.println(???); //Outer.this.num
}
}
}
class InnerClassTest {
public static void main(String[] args) {
Outer.Inner oi = new Outer().new Inner();
oi.show();
}
}作者: xiaogui 时间: 2016-5-11 23:02
创建内部类对象,调用show方法,分别打印内部类方法局部变量30,内部类成员变量20,外部类成员变量10,谢谢。作者: ︶夜戏乀梦红尘 时间: 2016-5-11 23:03
首先应该看一下要输出的几个值是什么变量,30是内部类的show()方法中的局部变量,根据就近原则,第一个输出语句中直接用num就会输出30,20是内部类的成员变量,在类中访问成员变量用this.变量就可以了,所以第二个输出语句中用this.num就会输出20,难一点的是输出10,外部类和内部类不是继承关系,不可以用super访问,在内部类中想访问外部类的成员变量可以用 外部类名.this.变量名,所有用 Outer.this.num就会输出10了