本帖最后由 jennye 于 2009-06-18 22:31:07 编辑

解决方案 »

  1.   

    首先,getInner()是Outer的方法,不是Outer.Tuck的,所以你不能对Outer.Tuck的实例tuck调用getInner()方法。第二,再Tuck.Inner getInner()方法中,因为Inner是Tuck的内部类,所以你必须先创建Inner的实例,再对该实例调用new Inner()。正确的写法如下:class Outer {
    private int index = 33; class Tuck {
    int index = 22; class Inner {
    private int index = 11; void print() {
    int index = 44;
    System.out.println(this.index);
    System.out.println(Outer.this.index);
    System.out.println(Tuck.this.index);
    System.out.println(index);
    }
    }
    } Tuck getIn() {
    return new Tuck();
    } Tuck.Inner getInner() {
    Tuck tuck = new Tuck();
    return tuck.new Inner();
    }
    }class Test {
    public static void main(String args[]) {
    Outer outer = new Outer();
    Outer.Tuck tuck = outer.getIn();
    Outer.Tuck.Inner inner = outer.getInner();
    inner.print(); }
    }
    最后提醒一下,发代码的时候像我这样放在代码标记里,看贴的人看着清楚,也就更愿意回答你的问题了。