如何创建一个将两个数字相加的mutator方法然后显示一条消息

时间:2010-02-09 07:28:08

标签: java

如何创建添加两个数字的mutator方法,但如果输入的添加数字为负数,则会显示错误消息而不更改第一个数字。建议请。

  public void restock(int newStockQuantity)
  {
    if(newStockQuantity < 0)
        {
            stockQ = stockQ;
        }
        {
            system.out.println("Error not negative numbers");
        }
    else 
        {  
            stockQ = stockQ + newStockQuantity;    
        }
  }     

2 个答案:

答案 0 :(得分:2)

嗯,首先,你不需要

stockQ = stockQ;

声明 - 没有做任何事情。

接下来是在“if”语句中有多个块的问题。如果您 希望保留no-op分配,则可以将方法更改为:

public void restock(int newStockQuantity)
{
    if(newStockQuantity < 0)
    {
        stockQ = stockQ;
        System.out.println("Error not negative numbers");
    }
    else 
    {  
        stockQ = stockQ + newStockQuantity;    
    }
}

删除无操作分配后,它只是:

public void restock(int newStockQuantity)
{
    if(newStockQuantity < 0)
    {
        System.out.println("Error not negative numbers");
    }
    else 
    {  
        stockQ = stockQ + newStockQuantity;    
    }
}

注意从“system”到“System”的变化--Java区分大小写。

那应该编译和工作。

就个人而言,如果方法的参数无效而不是向控制台打印消息,我建议抛出异常,但显然取决于具体情况。

如果你不理解我关于if语句有多个块的第一个评论,那么我建议你回到一本好的入门Java书籍,看看if语句的语法。你有点麻烦,有点不清楚。

答案 1 :(得分:0)

恕我直言,最好的方法是例外。另一点是输出有问题的值,因此该方法的用户知道错误是什么。它还会显示您的支票错误;)。第三点是首先检查不变量,使用异常或某些适用的返回语句进行挽救。

public void restock(int newStockQuantity) {
  if(newStockQuantity < 0) {
    throw new IllegalArgumentException("new stock " + newStockQuantity " must not be negative");
  }
  if (newStockQuantity == 0)
  {
     // nothing necessary, probably worth another exception?
     return;
  }
  stockQ = stockQ + newStockQuantity;
}