Как ни странно, переменная экземпляра brand является частной областью, но доступна общедоступным способом внутри метода 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); } }
Переменная класса brand является закрытой для других классов, а не для самого класса Car.
Car
например, если вы попробуете
class Foo { Foo() { Car car = new Car(); string brand = car.brand; // <-- will not compile; // should use car.getBrand() } }
Вы можете получить доступ к брендовому члену экземпляра O, потому что вы находитесь в другом экземпляре того же типа
Private указывает, что переменная может быть доступна только членам класса.В вышеописанном сценарии нет ничего плохого.
Private