1

不思議なことに、インスタンス変数brandはプライベートスコープですが、メソッド内の「パブリック」な方法でアクセスできますcompareTo

public class Car implements Comparable<Car> {
    private String brand;

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int compareTo(Car o) {
        return this.brand.compareTo(o.brand);
    }
}
4

3 に答える 3

4

クラス変数brandは、クラスCar自体ではなく、他のクラスにプライベートです。

たとえば、あなたがしようとすると

class Foo
{
     Foo()
     {
          Car car = new Car();
          string brand = car.brand; // <-- will not compile; 
                                    // should use car.getBrand()
     }
}
于 2011-08-14T02:52:31.267 に答える
2

同じタイプの別のインスタンスにいるため、インスタンスOのブランドメンバーにアクセスできます。

于 2011-08-14T02:52:41.003 に答える
1

Private変数にアクセスできるのはクラスのメンバーのみであることを指定します。上記のシナリオに問題はありません。

于 2011-08-14T02:54:12.407 に答える