【发布时间】:2011-01-14 08:43:24
【问题描述】:
在Java中,内部类可以访问封闭类的私有成员。但是外部类可以访问内部类的私有成员吗?这与内部类是否是静态的无关。我认为这不是真的,但以下代码似乎可以编译并正常工作。
public class Outer {
class Inner {
private int i = 0;
private Inner() {}
}
public static void main(String[] args) {
Outer o = new Outer();
Outer.Inner oi = o.new Inner();
oi.i = 10;
}
}
【问题讨论】:
-
看起来和我预期的一样。除了你的意思是
oi.i = 10;是吗? -
我不明白。代码就在这里。我知道输出。我知道它有效。我想了解它背后的原因。你认为这个问题不值得回答吗?
-
你能提供需要这种结构的例子吗?如果你想知道理论上是可以的,但我以前从未遇到过)
标签: java inner-classes