私有实例变量,可通过compareTo中的“public”范围访问

时间:2011-08-14 02:48:54

标签: java private public compareto

奇怪的是,实例变量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);
    }
}

3 个答案:

答案 0 :(得分:4)

类变量brand对其他类而言是私有的,而不是类Car本身。

例如,如果你尝试

class Foo
{
     Foo()
     {
          Car car = new Car();
          string brand = car.brand; // <-- will not compile; 
                                    // should use car.getBrand()
     }
}

答案 1 :(得分:2)

您可以访问实例O的品牌成员,因为您处于同一类型的另一个实例

答案 2 :(得分:1)

Private指定该变量只能由该类的成员访问。上面的场景没有任何问题。