0

我知道 Java 中静态嵌套类和内部类之间的区别。我说的是内部阶级。我也知道我们可以使用“OuterClass.this”从内部类中获取外部类。

与目录一样,有两种导航方式:绝对导航和相对导航。例如:“/aaa/bbb/ccc/ddd”,如果我在文件夹“ccc”中并想引用“bbb”,我们可以:“cd /aaa/bbb”或“cd ..”。

现在谈到 Java 内部类。

class AAA{
    BBB b = new BBB();
    class BBB{
        CCC c = new CCC();
        //CCC c = new CCC(b);
        class CCC{
            //SECOND VERSION
            //BBB parent = null
            //CCC(BBB parent_){
            //    parent = parent_;
            //}
            DDD d = new DDD();
            BBB GetParent(){
                return AAA.this.b;    //I know this will work
                //or return parent; if using the SECOND VERSION
            }
            class DDD{
            }    
        }
    }
}

我提供了两个版本:AAA.this.b 并引入了一个成员变量“parent”,分配了来自构造函数参数的值。

我的问题: 如果我不引入成员变量,我可以使用相对方式从内部类获取其直接父级吗?(如 cd ..)

4

2 回答 2

2

您可以使用BBB.this直接引用 BBB 类的封闭实例。

于 2013-05-03T05:48:25.733 回答
0

虽然通常内部类代码不需要对外部类的引用,因为它已经有一个隐式的用于访问外部类的成员,如果它需要传递它,它就需要对外部类的引用参考其他一些代码。如果那是你想要的,只需使用第一个版本。

于 2013-05-03T01:55:50.273 回答