Если поля, определенные в классе Java как «закрытые», доступны только из их собственного класса - как инструмент отладки показывает их и их значения, когда мы проходим код выполнения?
Снимок экрана «картинка в картинке» для иллюстрации: 
По-моему, JVM имеет режим отладки, который позволяет специальному пакету отладки получать к ним доступ. Работа в режиме отладки (например, конфигурации отладки из IDE) позволяет этому специальному пакету (который IDE знает использовать) делать свое дело.
Это просто интересно ... Никакая работа не зависит от вашего ответа здесь:)