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);
//...