Java 运行时错误

Java 运行时错误,java,runtime-error,Java,Runtime Error,我正在写一个模拟商店的程序。问题是,当我试图得到总数时,它只给出我最后购买的物品的总数,而不是所有购买的物品的总数。我做错了什么?我能纠正什么 import java.util.Scanner; public class Invoice { public static String partNum; public String description; public int quantity; public double price; public String part_de

我正在写一个模拟商店的程序。问题是,当我试图得到总数时,它只给出我最后购买的物品的总数,而不是所有购买的物品的总数。我做错了什么?我能纠正什么

 import java.util.Scanner;

public class Invoice {

public static String partNum;
public String description;
public int quantity;
public double price;


    public String part_description(String parts){
                partNum=parts;

                if(parts.equals("10")){
                    description="This is a large metal hammer, $20";price=20;}
                else if(parts.equals("15")){description="This is a small plastic hammer, $5";price= 5;}
                else if(parts.equals("20")){description="This is a medium wooden hammer, $10";price=10;}
                else if(parts.equals("25")){description="This is a bucket of paint, $25";price=25;}
                else{description="No such part number exists.";}
                return description; 
    }
    public void setquantity(int amount){
        quantity=amount;

    }
    public int getquantity(){

        return quantity;
    }
    public void setprice(double cost){
        price=cost;
        if(cost<0){cost=0;}

    }
    public double getprice(){
        return price;
    }
    public double getInvoiceAmount(double total){
        total=total+(quantity*price);
        return total;
    }

    public static void main(String[] args){

        Scanner s1= new Scanner(System.in);
        Invoice invoiceObject= new Invoice();
        boolean ask=true;
        while(ask==true){


        System.out.println("Chose one of the fallowing part numbers: 10, 15, 20, 25");

         partNum=s1.nextLine();

        System.out.println(invoiceObject.part_description(partNum));

        System.out.printf("\nHow many #%s would you like to get: ", partNum);
        int numOf=s1.nextInt();
        invoiceObject.setquantity(numOf);



        System.out.println("would you like to keep shopping? chose true or false");
        ask=s1.nextBoolean();
        partNum=s1.nextLine();


        }



        System.out.println("Your total price will be:$ "+invoiceObject.getInvoiceAmount(0));




}}
import java.util.Scanner;
公共类发票{
公共静态字符串partNum;
公共字符串描述;
公共整数;
公开双价;
公共字符串部件描述(字符串部件){
partNum=零件;
如果(部分等于(“10”)){
description=“这是一个大金属锤,20美元;价格=20;}
如果(parts.equals(“15”){description=”这是一个小塑料锤,5美元;价格=5;}
否则,如果(parts.equals(“20”){description=“这是一把中型木锤,10美元”;价格=10;}
否则如果(parts.equals(“25”){description=“这是一桶油漆,25美元”;price=25;}
else{description=“不存在此类零件号。”;}
返回说明;
}
公共无效设置数量(整数金额){
数量=金额;
}
公共整数getquantity(){
退货数量;
}
公共定价(双倍成本){
价格=成本;

如果(cost您从未在任何地方实际合计总价格。您需要有一个变量,例如totalSum。您希望在用户开始做任何事情之前将其设置为0。然后您希望增加价格

//pseudo code.
totalSum = totalSum + (quantity*price)

//at the end
print(totalSum)

这是一个逻辑错误…不是运行时错误。这是我在getInvoiceAmount中所做的,我写的total=total+(quantity*price);是的,但您只传递“0”…您认为您应该传递什么?您应该只调用一次吗?如果您多次添加到总数中,您不应该从其他地方调用它吗?