2016-11-07 102 views
-5

我有一个项目,我正在研究具有增变器和存取器方法的类。 对于我的mutator方法,我必须返回一个布尔值。 “True - 表示高度在范围内,并且对象的值已被修改。”很明显,假如不是的话。高度在范围内意味着它在1-10之间。Mutator方法中的布尔值

我知道如何写一个布尔值,但我怎么会做一个mutator方法? 通常,并牢记我是很新的,我会写沿下面的内容:

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

你必须改变你的setter的返回类型:

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

这比我在做的事情更有意义。所以每当我想在一个mutator方法中有一个布尔值时,我会写“public bool”或“public boolean”,然后使用通常的mutator方法? –

+0

是的。感谢您发现bool - >布尔错误。 – apt1002

+0

嗨,你会怎么做这个测试课?我一直在奋斗过去的一个小时。我必须使用mutator方法的布尔值。所以对于像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

感谢您的帮助!我试图在书籍和所有内容中寻找,但是我找不到我需要的东西:公共布尔值setHeight –

0

您需要if语句创建一个支票如果高度有效:

public boolean setHeight(int height){ 

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

     this.height = height; 
     return true; 

    } 

    return false; 

} 

由于该方法在结束时不需要其他语句运行,因此如果高度有效,if后面的任何内容都不会执行。

this.height指对象的height变量,而在这种情况下的height指的是由参数定义的变量。