public void setMultiplier(double multiplier) { // method head
if (multiplier == 1.08 * 1.06 || multiplier == 1.08 || multiplier == 1.06) {
this.multiplier = multiplier; // here the field variable is overwritten
}
throw new IllegalArgumentException("exception message");
}
Вы забыли написать переменную поля вашего класса.
Сеттер должен переопределить переменную поля. Сеттер должен переопределить переменную поля. Он ничего не возвращает, поэтому вместо логического значения в методе void. Если параметры неверны, выведите исключение (настолько значимое, насколько это возможно).
Совет: Я бы не распространял свои константы, такие как 1,06 или 1,08, в любом месте кода. Вы можете определить это следующим образом:
public class student {
private static final double MEANINGFUL_NAME_0 = 1.06;
private static final double MEANINGFUL_NAME_1 = 1.08;
// other code below
}
Преимущество: При необходимости вы должны изменить константу только в одном месте. Вероятность того, что вы пропустите и напишите 1.07 вместо 1.06, ниже.