访问实例对象的私有字段

Mel*_*lon 3 java java-ee

我有一个类,它有一个名为的字段orbits(它与我的类Body具有相同的类型并具有private修饰符):

public class Body {

     // I defined it as private field
     private Body orbits = null;

     public Body getOrbits(){
         return orbits;
     }

     public void setOrbits(Body orbits){
    this.orbits = orbits;
     }

     public void capture(Body victim){
        //Why 'victim' can access 'orbits' ?
        victim.orbits = this;
     }
}
Run Code Online (Sandbox Code Playgroud)

在类中,我定义了一个名为的方法capture(Body victim),它有一个带类型的参数Body.我想知道为什么我可以直接访问实例的private字段?我的意思是该字段是不是通过实例受害者不可访问?orbitsvictimprivate

And*_*mas 6

隐私不是每个实例 - 它是每个班级.

该类可以访问所有实例的私有字段.

例如,该方法equals( Object o )可以将o(如果适用)转换为相同类型,并将其私有成员与调用equals()的对象进行比较.