Пример кода (Java):
public class MutableInteger {
private int value;
// Lots of stuff goes here
public boolean equals(Object o) {
if(!(o instanceof MutableInteger)){ return false; }
MutableInteger other = (MutableInteger) o;
return this.value == other.value; // <------------
}
}
Если предположение «частные переменные-члены являются частными для экземпляра» было правильным, отмеченная строка вызовет ошибку компилятора, поскольку поле other.value
является закрытым и является частью объекта, отличного от того, чей метод equals()
называется.
Но так как в Java (и в большинстве других языков, имеющих концепцию видимости) private
видимость - для каждого класса, доступ к полю разрешен ко всему коду MutableInteger
, независимо от того, какой экземпляр использовался для вызова это.