«Видимость» метода — как следует из названия — это то, где методы и переменные «видимы» для программиста. Как правило, переменные области действия внутри класса всегда видны в определении класса, даже если они объявлены закрытыми и на них ссылается созданный объект (не «этот») этого класса.
Правила, касающиеся видимости и инкапсуляции, с точки зрения дизайна призваны помочь программистам избежать случайного доступа к переменным и методам, которые могут нарушить функциональность при неожиданном использовании. Например, вы бы разорвали контакт о том, как работает java.util.Random, если бы вам пришлось вручную вызывать
private static long seedUniquifier() {
// L'Ecuyer, "Tables of Linear Congruential Generators of
// Different Sizes and Good Lattice Structure", 1999
for (;;) {
long current = seedUniquifier.get();
long next = current * 181783497276652981L;
if (seedUniquifier.compareAndSet(current, next))
return next;
}
}
(Получено из исходного кода Sun JDK)
Однако в рамках кода, который вы пишете, обычно считается нормальным вызывать частные переменные/методы для объектов, определенных как типы этого класса, поскольку предполагается, что как программист и автор соответствующего кода вы имеете полномочия , агентство и опыт, необходимые для правильного управления кодом.
Итак, в общем, вне зависимости от того, объявлена переменная приватной или нет, следующий код:
public class Test {
private float internalValue;
public boolean isBigger(Test t) {
return internalValue > t.internalValue;
}
}
Всегда будет действительным.
person
Xirema
schedule
28.08.2015