gpt4 book ai didi

java - 项目未添加到数组中

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:47 26 4
gpt4 key购买 nike

这个项目我有 3 节课。我想在购物后打印出商品的总价,但是输出有问题。虽然每次购物的元素数量不同,但产出都是一样的。你能帮我解决这个问题吗?

这是我的代码:

这是第一个类:

public class LineItem {
private String name;
private int quantity;
private double pricePerUnit;
/**
*
*/
public LineItem(String name, int quantity, double pricePerUnit) {
this.name = name;
this.quantity = quantity;
this.pricePerUnit = pricePerUnit;
}


public double getCost() {
return quantity*pricePerUnit;
}


public void setQuantity(int newQuantity) {
quantity=newQuantity;
}
}

这是第二堂课:

import java.util.ArrayList;
public class ShoppingCart {
/**
*
*/
private LineItem[] item;
private int check;

public ShoppingCart() {
item = new LineItem[10];
check = 10;
}




public void add(LineItem newItem) {
int i = 0;

while (item[i] == null && check != 0){
item[i] = newItem;
i++;
check -= check;
}

}


public double getTotalCost() {
double totalCost = 0.0;

for(int i=0; i< item.length;i++){
if(item[i]!=null)
totalCost += item[i].getCost();
}
return totalCost;

}

}

这是第三堂课:

public class ShoppingCartTester{
public static void main(String[] args){

ShoppingCart singleItemCart = new ShoppingCart();
LineItem item1 = new LineItem("Dove shampoo",1,4.52);
singleItemCart.add(item1);
System.out.println(singleItemCart.getTotalCost());

//
ShoppingCart typicalCart = new ShoppingCart();
item1 = new LineItem("Dove shampoo",1,4.52);
typicalCart.add(item1);
LineItem item2 = new LineItem("apples",5,10.80);
typicalCart.add(item2);
LineItem item3 = new LineItem("avocados",5,20);
typicalCart.add(item3);
LineItem item4 = new LineItem("chocolate",1,4.25);
typicalCart.add(item4);
LineItem item5 = new LineItem("green onions",3,3.49);
typicalCart.add(item5);
System.out.printf("%.2f", typicalCart.getTotalCost());
System.out.println();

}
}

我认为问题出在 add 方法中,但我不知道如何修复它。

提前谢谢

最佳答案

我建议使用购物车中的当前商品维护一个全局变量(noOfItems),这样在添加的时候就可以直接添加新的item

所以而不是

public void add(LineItem newItem) {
int i = 0;

while (item[i] == null && check != 0){
item[i] = newItem;
i++;
check -= check;
}

}

使用

public void add(LineItem newItem){
item[++noOfItems] = newItem;
}

或者第二种方式

its better to create ArrayList instead of array of object

关于java - 项目未添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36348474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com