当我在 Setter 中只有 if/else 条件时,该程序不起作用。我得到了一个提示,我也必须在构造函数中使用它们。有人可以向我解释..为什么?

另一个问题:您是否将 if/else 语句放在构造函数或设置函数中?

//构造函数

   public Invoice(String partNumber, String partDescription, int quantity,
        double pricePerItem) {
    super();
    this.partNumber = partNumber;
    this.partDescription = partDescription;

    if (quantity <= 0)
        quantity = 0;
    else
        this.quantity = quantity;

    if (pricePerItem <= 0)
        pricePerItem = 0.0;
    else
        this.pricePerItem = pricePerItem;
}

//setter
  public void setQuantity(int quantity) {
    if (quantity <= 0)
        this.quantity = 0;
    else
        this.quantity = quantity;
}

public double getPricePerItem() {
    return pricePerItem;
}

public void setPricePerItem(double pricePerItem) {

    if (pricePerItem != 0.0)
        this.pricePerItem = 0.0;

    else
        this.pricePerItem = pricePerItem;
}

最佳答案

最好的办法是将 if/else 语句放在 setter 中,并在构造函数中使用 setter。这样一来,您的逻辑就集中在一个地方,并且更容易维护。

关于java - java构造函数中的if/else语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13202672/

10-10 20:16