Модификаторы доступа используются для инкапсуляции: они позволяют вам упорядочить код в пакетах и классах и имеют только «официальный» открытый интерфейс, видимый снаружи, скрывая при этом детали реализации (что вы хотите сделать, чтобыпозже вы можете изменить его, не сказав никому).
Это особенно (только?) важно, когда вы выпускаете код в виде библиотеки для использования другими программистами.Даже если код используется только в вашей собственной программе, он помогает структурировать большие программы в несколько пакетов.
Делать все частным не имеет смысла, если ваша программа не состоит только из одного класса.Однако это разумное значение по умолчанию: пока вы не решите, что какой-то другой класс должен вызывать его, сделайте метод закрытым.
Модификатор по умолчанию в Java (если ничего не указано) защищен пакетами.Это позволяет получить доступ к методу или полю из вашего собственного связанного кода (то есть кода в том же пакете), но при этом скрыть его от кого-либо еще.Это также является разумным значением по умолчанию или естественным путем обновления с частного: пока код, находящийся вне пакета, не должен вызывать его, необходимо сделать метод защищенным для пакета.
Защищены более видимые уровни (подклассы могут видеть) и публике (это видят все).Прежде чем делать что-то общедоступным или защищенным, тщательно продумайте интерфейс, потому что потом его сложно изменить.