private boolean isValid(int aRating)
{
return aRating >= 1 && aRating <= 10;
}
or
private boolean isValid(int aRating)
{
if (aRating >=1 && aRating <=100
return true;
else
return false
}
我现在需要写一个方法setRating(aRating),将等级设置为aRating IF它是否有效。所以我假设我需要在公共方法中使用上面的方法来检查它是否有效。如果它有效,那么我需要将rating =设置为aRating。到目前为止,我的想法是:
public void setRating(int aRating)
{
if (isValid() == true)
rating = aRating;
}
但是我不能将isValid用作==到true,因为它是一种方法。我也尝试使用isValid();为了尝试使用该方法,但由于顶部的(int aRating),它不会允许。如果我没有标识符,那么根本不允许我使用aRating ...
现在它已经
了public void setRating(int aRating)
{
if (isValid(aRating))
rating = aRating;
}
我需要创建一个setRating()方法,允许用户从键盘输入内容,然后它必须有效,我不断收到错误,因为它说我不能重载SetRating(int aRating)两次,我了解。但是如果我尝试将int部分取出它是无效的,因为它需要一个参数。这就是我所拥有的
public void setRating()
{
Scanner keyboard = new Scanner(System.in);
if (isValid(aRating))
rating = keyboard.nextInt();
}
答案 0 :(得分:2)
public void setRating(int aRating)
{
if (isValidRating(aRating))
this.rating = aRating;
}
这可能不是您的家庭作业所必需的,但在现实世界中,如果验证失败,您可能还需要考虑抛出IllegalArgumentException。
示例:
public void setRating(int aRating)
{
if (isValidRating(aRating))
this.rating = aRating;
else
throw new IllegalArgumentException("Invalid rating.");
}
答案 1 :(得分:0)
您还必须将aRating
参数传递给isValid
方法。而不是仅仅为错误的值跳过赋值,通常最好抛出一个异常,如下所示:
public void setRating(int rating) {
checkRating(rating);
this.rating = rating;
}
private void checkRating(int rating) {
if (!(1 <= rating && rating <= 10)) {
throw new IllegalArgumentException("Invalid rating: " + rating);
}
}
此类参数检查由java.util.ArrayList
等热门类使用,例如get(int)
方法。