ООП парадигма, сокрытие данных. Зачем нужны protected и public?
я изучаю ООП, и мне не понятна концепция сокрытия данных. По задумке: поля объекта должны изменяться только функциями внутри объекта, поэтому во всех крупных проектах в 100% случаев модификатор поля приватный чтобы свойства сущности можно было изменить только функциями сущности, в этом есть идея и логика. Тогда зачем нужен public и protected модификаторы?
Ответы (4 шт):
Тогда зачем нужен public и protected модификаторы?
Применений куча. Вам просто надо почитать побольше книги. Самое простое:
public - сделать dto, pojo. protected - для наследования
Так что вам надо продолжить изучение дальше
public - может быть полезен для внешних пакетов, которые будут использовать ваш class. так же если у вас нет какой то сложной логики связанных с установкой значения и его чтения, то вполне можно и public воспользоваться
protected - если вы хотите, чтобы изменять поле можно было только в дочерних классах, а не их экземплярах. С таким кейсом вы точно когда нибудь встретитесь
public навскидку
- для final констант
- Для factory методов
- для конструкторов. Не в одном же package живем
- для интерфейсов
- getter, setter
- для утилитарных методов.
зачем нужен public и protected модификаторы?
public для переменных - плохо, а вот для констант вполне приемлемо.
protected используется в подклассах, а значит родительский класс является составной частью каждого подкласса и в некоторых случаях просто необходимо иметь доступ к родительским полям. Причём мы всё так же закрыты от внешнего кода, но имеем прямой доступ к унаследованным полям, что быстрее, чем геттер/сеттер.
Модификаторы доступа - это инструмент разработчика, где общая рекомендация: делать доступ как можно приватным. Начинай с private и по мере необходимости расширяй область видимости.