我有一个类,它有一个名为 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;
     }
}

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

最佳答案

隐私不是每个实例 - 它是每个类。

该类可以访问所有实例的私有(private)字段。

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

关于java - 访问实例对象的私有(private)字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16510997/

10-12 05:19