Setter устанавливает значения атрибутов Objects, которые были созданы ранее.Конструктор в вашем случае создает объект с кучей предопределенных значений.
Class Pizza
Attributes: boolean Extra Cheese , boolean Extra mayonnaise
Ex Constructor Call:
Pizza Margherita = new Pizza(true, false) //sets value of attributes, i.e you want extra cheese or mayonnaise?
Ex setter Call:
Pizza Marinara= new Pizza();
public void setCheese (boolean cheese ) { //sets the values explictly
this.cheese = cheese ;
}
public void setMayonnaise (boolean mayonnaise) {
this.mayonnaise= mayonnaise; //sets the value explictly
}
Мы должны использовать конструкторский подход, когда нам нужно создать объект со значениями атрибутов, а не явно вызывать сеттеры для каждого значения и устанавливать их.
Хотя оба имеют разные преимущества ихорошо подходит в экосистеме Java.Если вы хотите иметь неизменный класс, используйте конструктор, в противном случае используйте сеттеры.
Если вы хотите иметь неизменный класс, используйте конструктор, в противном случае используйте сеттеры.
С Setters()
или мутаторы предоставляют вызывающей стороне возможность обновить значение определенной переменной экземпляра.
Подробнее:
Конструкторне нужно иметь спецификатор доступа , return
тип, в то время как сеттеры должны иметь спецификатор доступа .