2016-11-07 68 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指的是由參數定義的變量。