2016-05-08 26 views
0

如果數量不正確,則應將其設置爲0. 如果每件商品的價格不是正值,則應將其設置爲0.0。 Hwever當我輸入一個負數時,它始終將我的變量設置爲負數而不是零。我的java類驗證不工作爲什麼?

這是我的班級包com.company;

/** 
* Created by juliodiaz on 5/7/16. 
*/ 
public class Invoice { 

    private String partNumber; 
    private String partDescription; 
    private int partQuantity; 
    private double partPrice; 

    public Invoice(String partNumber, String partDescription, int partQuantity, double partPrice) { 
     this.partNumber = partNumber; 
     this.partDescription = partDescription; 
     this.partQuantity = partQuantity; 
     this.partPrice = partPrice; 
    } 

    public String getPartNumber() { 
     return partNumber; 
    } 

    public void setPartNumber(String partNumber) { 
     this.partNumber = partNumber; 
    } 

    public String getPartDescription() { 
     return partDescription; 
    } 

    public void setPartDescription(String partDescription) { 
     this.partDescription = partDescription; 
    } 

    public int getPartQuantity() { 
     return partQuantity; 
    } 

    public void setPartQuantity(int partQuantity) { 
     this.partQuantity = partQuantity; 
    } 

    public double getPartPrice() { 
     return partPrice; 
    } 

    public void setPartPrice(double partPrice) { 
     this.partPrice = partPrice; 
    } 

    public double invoiceAmountMethod(double partPrice, int partQuantity) { 
     if (partQuantity < 0 || partPrice < 0.0) { 
      this.partQuantity = 0; 
      return partPrice * partQuantity; 
     } 
     else 
      return partPrice * partQuantity; 
    } 
} 

//Main method 
package com.company; 

public class Main { 

    public static void main(String[] args) { 
     // write your code here 

     Invoice myTruck = new Invoice("A101", "Wheels", -2, 100.00); 

     System.out.println(myTruck.getPartDescription()); 
     System.out.println(myTruck.getPartNumber()); 
     System.out.println(myTruck.getPartQuantity()); 
     System.out.println(myTruck.getPartPrice()); 

     double price = myTruck.getPartPrice(); 
     int quantity = myTruck.getPartQuantity(); 

     System.out.println("The total cost is " + myTruck.invoiceAmountMethod(price, quantity)); 

    } 
} 

輸出

Wheels 
A101 
-2 
100.0 
The total cost is -200.0 
+1

你有沒有在你的方法中放置斷點? – ryekayo

回答

1

你分配:

this.partQuantity = 0; 

但你返回:

return partPrice * partQuantity; 

(將被傳遞給該甲基參數OD)。

,你可以通過返回修復:

return this.partPrice * this.partQuantity; 

,你真的不應該傳遞任何參數,此方法。

0

這是你需要的。

public double invoiceAmountMethod(double partPrice, int partQuantity) { 

    return (partQuantity < 0 || partPrice < 0.0)?0.0:partPrice * partQuantity;   

}