本帖最后由 陈淑飞 于 2012-7-14 21:10 编辑
- class Outer
- {
- class Inner
- {
- void function()
- {
- //如何在这个函数中访问Inner1中的x?
- Outer.Inner1 in = Outer.this.new Inner1(); //关键是这里,要拿了Inner1的对象就可以用了。
- //根据成员内部类的实例规则,必须用外部类的实例来 外部类实例.new 内部类 才能产生个对象的。
- //而这个函数中,也是在另一个外部内部类中,所以不能直接用this,而要用Outer.this 来获取外部类实例
- System.out.println("拿到Inner1的x了,x="+in.x);
- }
- }
-
- class Inner1
- {
- int x=9;
- }
-
- public static void main(String[] args){
- Outer out = new Outer();
- Outer.Inner in = out.new Inner();
- in.function();
- }
- }
复制代码 //如何在这个函数中访问Inner1中的x?
Outer.Inner1 in = Outer.this.new Inner1(); //关键是这里,要拿了Inner1的对象就可以用了。
//根据成员内部类的实例规则,必须用外部类的实例来 外部类实例.new 内部类 才能产生个对象的。
//而这个函数中,也是在另一个外部内部类中,所以不能直接用this,而要用Outer.this 来获取外部类实例
System.out.println("拿到Inner1的x了,x="+in.x);
|