Зачем использовать конструкторы , если есть сетеры и наоборот?

Зачем использовать конструкторы , если есть сетеры и наоборот?


Ответы (1 шт):

Автор решения: USER1111

У вас в классе может быть большое количество полей, которые могут быть нужны, а могут и нет, всё это зависит от конкретной ситуации. Однако почти в каждом классе имеется то или иное поле, без которого обойтись, ну, никак нельзя. Конструктор как раз и подскажет вам все те поля, необходимые для корректной работы объекта класса.

Попробуем разобраться с этим на примере класса Scanner, который способен считывать данные с консоли. Если представить, что в этом классе имеется конструктор без параметров, то получится возможным создать объект этого класса таким образом: Scanner scanner = new Scanner(); Теперь давайте попробуем вызвать метод next и записать значение в строку: String s = scanner.next(); Но вот незадача, консоль заполнилась огромным количеством ошибок, а всё потому, что класс не имеет понятия, откуда ему считывать данные.

Как я отметил ранее, в классе очень большое количество полей, а теперь представьте, удобно ли вам было бы искать среди тысячи setter`ов тот самый? А если там названия методов не соответствуют их предназначению? И вот это, пожалуй, один из плюсов использования конструкторов на мой взгляд.

Также конструкторы позволяют выполнить некоторую логику при иницилизации объекта класса. Допустим, у вас есть класс для парсинга html страниц. К примеру, в его конструкторе, который принимает параметр - url, было бы удобно получить страницу в строку, чтобы через методы отсортировывать те или иные данные.

Можно искать еще много плюсов, конструктор - полезная и используемая вещь!

→ Ссылка