Друзья! Я понял как работают сеттеры, геттеры и конструкторы. Но не понял одну вещь:
public class Person {
private String name;
public Person(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class User {
public static void main(String[] args) {
Person person = new Person("Василий");
System.out.println(person.getName());
person.setName("Леонид");
System.out.println(person.getName());
}
}
Зачем нам сеттеры, если можно указать всё в конструкторе (в параметрах)? Может, есть какие-то подводные камни или разные ситуации?
Через конструктор указывается начальное значение. Такой способ инициализации гарантирует установку значений при создании объекта и сокращает код инициализации этого объекта (не нужно дополнительно вызывать сеттеры). Сеттером же начальные значения можно изменить в процессе жизни объекта, иначе пришлось бы создавать новый объект через конструктор, что часто неприемлемо. Ну и геттером, понятно, получить текущее значение
Когда вы передаёте значения определённых полей во всех конструкторах, вы гарантируете, что эти конкретные поля будут проинициализированы. Сетеры такой гарантии не дают. С другой стороны это не вскегда необходимо, поэтому и не всегда используется.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Проблема следующего характера, создал список checkBox-ов при помощи recyclerView, наполняю его следующим образом:
Недавно начал практиковаться в медиа-запросахНужно ли добавлять медиа-запрос, если ширина экрана <= 260px? Существуют ли вообще устройства...