Java

Геттеры и сеттеры нужны всегда или можно не заморачиваться?

Сергей Андреев
Сергей Андреев
21 258
Геттеры-это обычные колготки, а сеттеры колготки в сетку? Если да, то все таки стоит заморочится...
РГ
Руслан Гайсин
3 387
Лучший ответ
Сергей Андреев Стёб?
Сами не шарите в теме значит.
Геттеры и сеттеры нужны для обеспечения принципа инкапсуляции. Там, где не нужно его обеспечивать, они тоже, как правило, не нужны, хотя иногда с ними просто удобнее.
Саня Ширкин
Саня Ширкин
64 498
да... они нужны...
но есть библиотеки, которые позволяют не писать явно никакие геттеры и сеттеры... и конструкторы... и ещё много чего... всё будет написано "само" во время компиляции, но в вашем коде так и будет всё чисто и красиво...
Их делают в том числе для того, чтобы в случае чего программу можно было бы легко модифицировать. В Java отсутствие свойств, конечно, раздражает. Да и не только это. Бедноватый язык и застрял во времени.
Денис Маврин
Денис Маврин
66 665
Сергей Андреев Каких свойств?
Для костылей на будущее делают. Понятно.
Современные IDE умеют автоматически заменять public-поле на private-поле с геттерами/сеттерами. Поэтому геттеры/сеттеры можно добавить позже, если они понадобятся. Такое изменение исходного кода нежелательно, если проект разрабатывает несколько человек.
На мой взгляд, бездумное применение геттеров/сеттеров замусоривает код. Это одна из причин, почему мне не нравится Ява.
Есть библиотека Lombok, облегчающая создание геттеров/сеттеров. Но использование (вызов) геттеров/сеттеров всё равно выглядит более громоздко, чем обращение к полям.
Рома Пашкевич
Рома Пашкевич
58 065
Андрей Багаутдинов Полностью согласен с вами. И не понимаю почему советуют засорять код гетерами/сетерами, вместо предоставления поля напрямую.
геттеры-сеттеры при необходимости всегда можно дописать, если это имеет смысл с точки зрения сокрытия
главное поля публичными не делать
Алексей Дюжев
Алексей Дюжев
51 164
Сергей Андреев Если поле сделать private и не соорудить геттеры и сеттеры, то как же к ним достучаться в таком случае?
Это зависит от ситуации и нужды.

Рекомендация конечно делать. Однако зависит. Лучше всего использовать IDE они могут автоматически создавать геттеры сеттеры и конструкторы.

Загуглите как их создавать в вашем IDE.

---

Public доступ (без геттеров сеттеров) не надо давать по напрасному. Только когда есть нужда. Хотя тоже самое относится и к геттерам и сеттерам.
Алихан Сексембаев "автоматически" не создадут...
тебе всё так же надо кликнуть что-то и указать что нужно только геттеры или только сеттеры или оба... и для каких полей класса... и где добавить...

но если использовать Lombok, то всё это писать не потребуется.. всё будет "само" добавлено в компилируемый код... не в исходник...