0

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

Kromster
  • 13,809
NotHacker
  • 19
  • 3

4 Answers4

2

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

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

NotHacker
  • 19
  • 3
0

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

Применений куча. Вам просто надо почитать побольше книги. Самое простое:

public - сделать dto, pojo. protected - для наследования

Так что вам надо продолжить изучение дальше

Книги и учебные ресурсы по Java

0

public навскидку

  1. для final констант
  2. Для factory методов
  3. для конструкторов. Не в одном же package живем
  4. для интерфейсов
  5. getter, setter
  6. для утилитарных методов.
George_A
  • 211
0

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

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


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


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