为什么我可以在我的equals(Object o)方法中直接访问"other"对象的私有变量

non*_*tor 35 java protection

在Java中的equals(Object o)方法中,我可以访问传入对象的私有变量,而无需通过其公共getter.

public boolean equals(Object o){
    ...
    MyObject other = (MyObject)o;
    return getProp() == other.prop; 
}
Run Code Online (Sandbox Code Playgroud)

怎么样?

cle*_*tus 52

私有数据可由该类的任何实例访问,即使A类的一个实例正在访问另一个A实例的私有成员.重要的是要记住访问修饰符(private,protected,public)是控制访问,而不是实例访问.