Private members in Enum Java
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | public class Test { public static enum MyEnum { valueA(1),valueb(2),valuec(3),valued(4); private int i; private Object o; private MyEnum(int number) { i = number; } public void set(Object o) { this.o = o; } public Object get() { return o; } } public static void main(String[] args) { System.out.println(MyEnum.valueA.i); // private } } |
产量:1
如果它是枚举中的私有成员,为什么会显示1?
因此,外部类可以完全访问其内部类的成员变量。
相反,如果
它是(i)在同一类(myenum)中被引用的成员字段;没有访问修饰符阻止它-在i上定义的私有访问修饰符将阻止它在该类之外的可见性。建议阅读
允许从包含类型到嵌套类型的私有访问,请参见为什么枚举类型上的私有字段对包含类可见?
外部类将拥有对内部类成员的访问权,即使它是私有的,因为您已经在外部类中定义了