Strangely, instance variable brand
is private scope, yet accessible the "public" way inside of method 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);
}
}
Class variable brand
is private to other classes not the class Car
itself.
for instance if you try
class Foo
{
Foo()
{
Car car = new Car();
string brand = car.brand; // <-- will not compile;
// should use car.getBrand()
}
}
You can access the brand member of the instance O because you are in another instance of the same type
Private
specifies that the variable can only be accessed by members of the class. There is nothing wrong with the scenario above.
精彩评论