Вы сказали:
Пожалуйста, объясните, не говорите мне правило.
Ну, вот мои два цента.
На мой взгляд, предпосылка частных членов класса заключается в том, что класс может внутренне знать о своей собственной реализации, не подвергая эту реализацию внешнему миру. Таким образом, один экземпляр класса вполне способен понять, как реализован другой экземпляр того же класса; поэтому он не ограничен в использовании этих знаний о реализации.
Что касается примеров манипулирования друг другом, я признаю, что это несколько необычно. Но возьмем для примера статические методы построения. Вы также ограничите их от доступа к закрытым членам экземпляров? Если это так, вы сделали много полезного кода невозможным. Если нет, неясно, почему статические методы должны иметь доступ к закрытым членам, а методы экземпляра не должны.
Другими словами, слово «частный» в ООП не предназначено для передачи идеи личной конфиденциальности , как у лиц, скрывающихся друг от друга. Скорее, думайте о классе как о «только для членов», вроде клуба , где есть определенные способы делать вещи, о которых знают только члены клуба.