@deleted-ITema325

Getter,setter для чего нужны?

Важно ли использовать их в названиях методов?
  • Вопрос задан
  • 8253 просмотра
Пригласить эксперта
Ответы на вопрос 6
EugeneP2
@EugeneP2
Java Dev
Это одно из соглашений для класса, что бы он мог использоваться как Java Bean

Свойства класса должны быть доступны через get, set и другие методы (так называемые методы доступа), которые должны подчиняться стандартному соглашению об именах. Это легко позволяет инструментам автоматически определять и обновлять содержание bean’ов.
.

+ на данном соглашении работают куча различных сериализаторов xml/json, JPA

+ простые приставки к методам get и set сразу говорят для чего эти методы.

З.Ы.
По честному, ручное прописывание getter-ов и setter-ов давно всем надоело и избыточно, потому в современных JVM языках, типа Groovy или Scala методы доступа генерируются автоматически компилятором. Для Java есть фреймверк Lombok, он позволяет автоматически генерировать методы доступа к полям.
Ответ написан
Комментировать
@dmitryKovalskiy
программист средней руки
Первый принцип ООП - инкапсуляция. Контроль доступа к полям и методам класса. Как вы их реализуете - ваше дело, но нужно сделать так чтобы было понятно назначение метода
Ответ написан
@ColdSpirit
Мне кажется, что возможность изменять параметры напрямую - это потенциальная ошибка в коде (кто-то может неправильно их использовать), также методы гет и сет выглядят более лаконично, например из-за того, что вы даете другому программисту информацию о том, что можно сделать с данным классом, а не сухую переменную.
Также методы гет и сет можно модифицировать таким образом, чтобы они проверяли или изменяли входящие и выходящие данные как нужно, как примитивный пример - метод гетНейм, который берет строку ФИО и извлекает имя, без этого метода программисту-пользователю делать надстройки над классом для извлечения имени.
Ответ написан
Комментировать
Sanan07
@Sanan07
Писатель-прозаик
По идее эти названия использовать не обязательно. Главное придерживаться инкапсуляции.
Ответ написан
Почитайте раздел на эту тему в head first java. Там все подробно описано.
Ответ написан
Dit81
@Dit81
Security researcher, pentester, internet-marketer
Лучше называть методы и классы "говорящими" именами... getSpeedCar и setSpeedCar сразу говорят об их непосредственном применении...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы