我意识到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 ..)
答案 0 :(得分:2)
您可以使用BBB.this
直接引用BBB类的封闭实例。
答案 1 :(得分:0)
虽然通常内部类代码不需要引用 外部类,因为它已经有一个用于访问成员的隐式类 对于外部类,如果需要传递外部类,则需要引用外部类 参考其他一些代码。如果那就是你想要的,只需使用第一个版本。