4

名前付きのフィールドが1つあるクラスがあります(クラスとorbits同じタイプで、修飾子があります):Bodyprivate

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)type のパラメーターを 1 つ持つという名前のメソッドを定義しましたBody。インスタンスのprivateフィールドに直接アクセスできるのはなぜですか?つまり、フィールドはです。インスタンスの犠牲者からはアクセスできませんか?orbitsvictimprivate

4

5 に答える 5

0

被害者はクラス Body のインスタンスであり、そのクラスのすべての属性を持ちます。すべてのインスタンスには、プライベート プロパティ オービットがあります。

クラス属性が必要な場合は、「private static」を使用してください

于 2013-05-12T19:11:42.557 に答える