Мне также немного любопытно ответить.
Самый удовлетворительный ответ, который я нахожу, это от Artemix в другом сообщении здесь (я переименовываю класс AClass с Person): Почему у вас есть модификаторы доступа на уровне классов вместо уровня объекта?
Частный модификатор применяет принцип инкапсуляции.
Идея заключается в том, что «внешний мир» не должен вносить изменения в внутренние процессы Person, потому что реализация Person может меняться со временем (и вам придется изменить весь внешний мир, чтобы исправить различия в реализации - это почти невозможно).
Когда экземпляр Person обращается к внутренним элементам другого экземпляра Person - вы можете быть уверены, что оба экземпляра всегда знают подробности реализации Человека. Если логика внутренних процессов Person изменяется, все, что вам нужно сделать, это изменить код Person.
blockquote>EDIT: Пожалуйста, подтвердите ответ Artemix. Я просто копирую его.
Это известная проблема .
Пожалуйста, обратитесь к этому сообщению SO для обходного пути .