我看到很多有关访问封闭类的私有成员的问题。然而,我的问题恰恰相反。
如果我有(作为示例),则以下代码:
public class A {
private String outerString = "silly string";
static class B {
private final A someA = new A();
public void foo() {
String b = someA.outerString ;
}
}
}
我想知道为什么会编译?由于我从 A 类访问“outerString”实例变量(通过 someA.outerString)的方式,我预计会出现错误。我知道内部类可以通过隐式“this”引用直接访问封闭类成员。但在这里,B 类是静态的,因此“this”引用不适用。
B
是的成员A
因此可以访问A
's private
领域和方法。
在这种情况下,虽然B
is static
它使用 A 的实例来访问该字段A.outerString
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)