Изменить значение приватной переменной извне класса напрямую нельзя. Компилятор сгенерирует ошибку или возникнет ошибка доступа во время выполнения в зависимости от контекста (например, если используется рефлексия без изменения модификатора доступа).
Для изменения приватной переменной необходимо использовать:
java.lang.reflect API, можно получить доступ к приватным полям и изменить их значение, предварительно вызвав setAccessible(true). Однако это нарушает инкапсуляцию и следует использовать осторожно, в основном для тестирования или сериализации/десериализации.Пример с использованием сеттера:
java
Пример попытки прямого доступа (приведет к ошибке компиляции):
java
Пример с использованием рефлексии:
java