2016-11-07 2 views
-5

У меня есть проект, в котором я работаю над классом с мутатором и методами доступа. Для моих методов мутатора я должен вернуть логическое значение. «Истина - указание высоты находится в пределах диапазона и что значение объекта было изменено». Ложно, очевидно, если это не так. Высота в диапазоне означает, что она находится между 1-10 включительно.Boolean in Mutator Method

Я знаю, как писать логическое, но как бы я это сделал в методе мутатора? Обычно, и иметь в виду, что я очень новый, я бы написать что-то по следующему:

public void setHeight(int newHeight){ 
    height = newHeight; 
} 

Как бы я кладу булево внутри метода мутаторный, а также гарантировать, что высота находится в пределах его правильный диапазон? Мой булево бы что-то вдоль линий:

if (height >= 1 && height <= 10) { 
    System.out.println("It's perfect!"); 
} else { 
    System.out.println("Not right!"); 
} 
+1

'if (height> = 1 && height> = 10)' вы уверены, что один из них не должен быть '<='? – John3136

+0

@ John3136 Я изменил его. Спасибо вам за это! Очевидная ошибка теперь очевидна. –

ответ

-1

Вы должны изменить тип возвращаемого вашего сеттер:

public boolean setHeight(int newHeight) { 
    if (1<=height && height<=10) { 
     height = newHeight; 
     return true; 
    } else { 
     return false; 
    } 
} 
+0

Это намного больше смысла, чем то, что я делал. Поэтому всякий раз, когда я хочу иметь логическое значение внутри метода мутатора, я пишу «public bool» или «public boolean», а затем обычный метод мутаторов? –

+0

Yup. Спасибо, что заметили ошибку bool -> boolean. – apt1002

+0

Эй, как бы вы сделали это для класса тестеров? Я боролся за последний час. Я должен использовать логическое значение для метода мутатора. Так что-то вроде myWhatever.setHeight ..... что? Есть ли у вас какие-либо рекомендации или ссылки? –

-1
public boolean setHeight(int newHeight){ 
    if (height >= 10) { 
    height = newHeight; 
    System.out.println("It's perfect!"); 
    return true; 
    } 
System.out.println("Not right!"); 
return false; 
} 
+0

Спасибо за помощь! Я пробовал смотреть в книгах и все, но я не мог найти то, что мне было нужно: public boolean setHeight –

0

Вам нужно создать, если заявление, что проверки если высота действительна:

public boolean setHeight(int height){ 

    if(1 <= height && 10 >= height){ 

     this.height = height; 
     return true; 

    } 

    return false; 

} 

Никакой инструкции else не требуется, потому что метод заканчивается, когдаЗапускается, и, следовательно, что-либо после if не будет выполнено, если высота действительна.

this.height относится к переменной height объекта, тогда как height в этом случае относится к переменной, заданной параметром.