я изучаю ООП, и мне не понятна концепция сокрытия данных. По задумке: поля объекта должны изменяться только функциями внутри объекта, поэтому во всех крупных проектах в 100% случаев модификатор поля приватный чтобы свойства сущности можно было изменить только функциями сущности, в этом есть идея и логика. Тогда зачем нужен public и protected модификаторы?
-
Чтобы разрушить концепцию, так? – Roman C Apr 02 '22 at 20:09
-
Уточните, пожалуйста, что такое "парадигма"? – Sergey Apr 08 '22 at 05:28
4 Answers
public - может быть полезен для внешних пакетов, которые будут использовать ваш class. так же если у вас нет какой то сложной логики связанных с установкой значения и его чтения, то вполне можно и public воспользоваться
protected - если вы хотите, чтобы изменять поле можно было только в дочерних классах, а не их экземплярах. С таким кейсом вы точно когда нибудь встретитесь
- 19
- 3
Тогда зачем нужен public и protected модификаторы?
Применений куча. Вам просто надо почитать побольше книги. Самое простое:
public - сделать dto, pojo. protected - для наследования
Так что вам надо продолжить изучение дальше
- 73,186
public навскидку
- для final констант
- Для factory методов
- для конструкторов. Не в одном же package живем
- для интерфейсов
- getter, setter
- для утилитарных методов.
- 211
зачем нужен public и protected модификаторы?
public для переменных - плохо, а вот для констант вполне приемлемо.
protected используется в подклассах, а значит родительский класс является составной частью каждого подкласса и в некоторых случаях просто необходимо иметь доступ к родительским полям. Причём мы всё так же закрыты от внешнего кода, но имеем прямой доступ к унаследованным полям, что быстрее, чем геттер/сеттер.
Модификаторы доступа - это инструмент разработчика, где общая рекомендация: делать доступ как можно приватным. Начинай с private и по мере необходимости расширяй область видимости.
- 1,676