为什么内部类可以访问这样的类的输入对象参数的私有字段?内部类方法和私有字段
private class Inner {
private int privatefield = 0;
public void method(Inner inner) {
privatefield = 1; //ok
inner.privatefield = 1; //this line confusing me (broken incapsulation)
}
}
如果它是私密的,一个类可以访问该属性。包,子类或整体世界中没有任何东西,但同一类中的所有东西都没有。 http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html – Joetjah
所以任何内部类的私有字段都是外部类的字段(没有访问限制)。但它是中断封装。在我看来,我应该只能访问外部字段和内部类字段,而不能访问另一个内部类实例的字段。 – pswrdf
第一种情况在这里解释:[链接](http://stackoverflow.com/a/17027518/2728393) – pswrdf