java - 如何在公共(public)方法中使用私有(private)方法来检查有效性?

标签 java methods boolean private-methods

    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。所以我假设我需要在公共(public)方法中使用上面的方法来检查它是否有效。如果它有效,我需要将 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();
}

最佳答案

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.");
}

关于java - 如何在公共(public)方法中使用私有(private)方法来检查有效性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7962161/

相关文章:

C# 在哪里添加方法

java - 如何在 Java 中为 true if 语句打印多个值?

java - 继承和可迭代

java - REST WADL 与 SOAP

java - 线程 "main"java.net.UnknownHostException : services. gradle.org 中的异常

java |如何使用反射和 RTTI 计算所有方法?

java - 字符串或枚举作为参数来引用模型字段

java - Guice:通过方法创建对象

java - 重写 for 循环以包含任何类型的对象

ios - Xcode 核心数据属性