Gymterview
junior

Может ли объект получить доступ к члену класса, объявленному как `private`? Если да, то каким образом?

  • Внутри класса доступ к приватной переменной открыт без ограничений;
  • Вложенный класс имеет полный доступ ко всем (в том числе и приватным) членам содержащего его класса;
  • Доступ к приватным переменным извне может быть организован через отличные от приватных методов, которые предоставлены разработчиком класса. Например: getX() и setX().
  • Через механизм рефлексии (Reflection API):
Пример
class Victim {
    private int field = 42;
}
//...
Victim victim = new Victim();
Field field = Victim.class.getDeclaredField("field");
field.setAccessible(true);
int fieldValue = (int) field.get(victim);
//...