【发布时间】:2012-08-10 23:56:09
【问题描述】:
我发现java中的两个嵌套类可以访问彼此的私有成员。为什么会这样?这是一个错误还是标准规定的?
以下代码编译运行无错误。
public class Main {
public static void main(String args[]) {
A a = new A();
a.var1 = 12;
B b = new B();
System.out.println(a.var1);
b.printA(a);
}
private static class A {
private int var1;
}
private static class B {
private int var2;
public void printA(A a) {
// B accesses A's private variable
System.out.println(a.var1);
}
}
}
【问题讨论】:
-
看看
printA:B访问a.var1是A中的私有对象 -
虽然标准对这个问题并没有太具体,但 private 修饰符限制在当前类的文件中。
标签: java nested-class private-members