我碰到下面的「奇怪」的功能今天來 - 如果你有從A級的A級機體對象的引用,你可以訪問這個對象的私人領域 - 即:有私人字段訪問時可以有參考嗎?
public class Foo{
private int bar;
private Foo foo;
public void f()
{
if(foo.bar == bar) // foo.bar is visible here?!
{
//
}
}
}
任何人都有很好的解釋嗎?
當你必須編寫一個equals方法時,這個特性非常有用。 –
同樣的問題:http://stackoverflow.com/questions/2126984/why-is-the-access-to-a-private-field-not-forbidden,http://stackoverflow.com/questions/4340129/accessing -private-field-in-java,http://stackoverflow.com/questions/312168/java-private-field-visibility –