【发布时间】:2009-07-06 09:48:14
【问题描述】:
考虑以下情况:
public class A {
public A() { b = new B(); }
B b;
private class B { }
}
从 Eclipse 中的警告中,我引用:java 编译器通过合成访问器方法模拟构造函数 A.B()。我想编译器现在继续为 B 创建一个额外的“水下”构造函数。
我觉得这很奇怪:为什么 B 级不会像 a.k.o. 一样可见。 A 中的字段? 并且:这是否意味着 B 类在运行时不再是私有的? 还有:为什么 B 类的 protected 关键字的行为不同?
public class A {
public A() { b = new B(); }
B b;
protected class B { }
}
【问题讨论】:
标签: java inner-classes