Чтобы исправить ваш метод setHeight()
с вводом «-1,5», сделайте следующее:
public void setHeight(double height) {
System.out.println("got here ");
if (height < 0) { // use "height" instead of "this.height"
this.height = 0.00;
}
}
Чтобы исправить это, чтобы он также сохранял другие, нулевые или большие значения, сделайте это;
public void setHeight(double height) {
System.out.println("got here ");
if (height < 0) {
this.height = 0.00;
} else {
this.height = height; // set a new value for "this.height" if you didn't zero it out above
}
}
Путаница, с которой вы столкнулись, заключается в том, когда использовать height
вместо this.height
. Один из них представляет значение параметра, передаваемого в метод (height
), а другой представляет значение, уже сохраненное в объекте (this.height
).
Кроме того, если вы используете IDE (например, как IntelliJ), вы увидите серое имя переменной height вместе с текстом при наведении «Параметр height никогда не используется» , что даст вам подсказку, что в вашем коде есть ошибка программирования.