Вы отмечаете членов класса private
, к которым нельзя обращаться извне класса. Например, вы используете это, чтобы скрыть детали реализации, чтобы вы могли изменить реализацию, не затрагивая другой код , используя ваш класс. Сокрытие деталей реализации является одним из ключевых аспектов ООП (инкапсуляция). Если вы создаете класс Car
, а затем пишете много кода, который использует класс Car
, и вы внезапно понимаете, что ваша реализация работает очень плохо, и вам нужно ее реорганизовать, если вся реализация Car
подробности являются частными для класса Car
, вы знаете , что ни один из кодов, использующих Car
, не обращается к этим вещам, и вы можете изменить их по своему желанию. Если вы не пометите их private
, вы могли бы использовать некоторые из них в этом другом коде, который затем сломался бы.
Аналогичным образом, protected
(в любом случае на Java) предназначен для той же цели, но позволяет классам , полученным из вашего класса , получить доступ к этим членам. Это довольно слабая защита, потому что, конечно, это означает, что вы не можете изменить детали реализации базового класса, не затрагивая производные классы.