How many иs can you find in:
Q: ООП парадигма, сокрытие данных. Зачем нужны protected и public? я изучаю ООП, и мне не понятна концепция сокрытия данных. По задумке: поля объекта должны изменяться только функциями внутри объекта, поэтому во всех крупных проектах в 100% случаев модификатор поля приватный чтобы свойства сущности можно было изменить только функциями сущности, в этом есть идея и логика. Тогда зачем нужен public и protected модификаторы?

A: public - может быть полезен для внешних пакетов, которые будут использовать ваш class. так же если у вас нет какой то сложной логики связанных с установкой значения и его чтения, то вполне можно и public воспользоваться
protected - если вы хотите, чтобы изменять поле можно было только в дочерних классах, а не их экземплярах. С таким кейсом вы точно когда нибудь встретитесь

A: 
Тогда зачем нужен public и protected модификаторы?

Применений куча. Вам просто надо почитать побольше книги. Самое простое:
public - сделать dto, pojo. protected - для наследования
Так что вам надо продолжить изучение дальше
Книги и учебные ресурсы по Java

A: public навскидку

*

*для final констант

*Для factory методов

*для конструкторов. Не в одном же package живем

*для интерфейсов

*getter, setter

*для утилитарных методов.


A: 
зачем нужен public и protected модификаторы?

public для переменных - плохо, а вот для констант вполне приемлемо.

protected используется в подклассах, а значит родительский класс является составной частью каждого подкласса и в некоторых случаях просто необходимо иметь доступ к родительским полям. Причём мы всё так же закрыты от внешнего кода, но имеем прямой доступ к унаследованным полям, что быстрее, чем геттер/сеттер.

Модификаторы доступа - это инструмент разработчика, где общая рекомендация: делать доступ как можно приватным. Начинай с private и по мере необходимости расширяй область видимости.

user
I counted ninety-two "и"s in that text.
assistant