我不知道如何从这段代码中获得总成本.......... PurchaseList类应使用数组字段来存储所购买的项目,并跟踪其大小(项目数量)到目前为止的清单) . PurchaseList类应具有以下方法:
PurchaseList()//构造一个新的空购买清单 .
public void add(ItemPrice item)//如果列表未满(即少于10个项目),则将给定的购买项目添加到此列表中 .
public double getTotalCost()//返回此列表中所有已购买项目的总和成本 .
写另一个名为ItemPrice的类,它根据数量表示项目的价格 . ItemPrice类应存储项目数量和每单位价格 . ItemPrice对象应具有以下方法:
ItemPrice(String name,int quantity,double pricePerUnit)//构造一个具有给定名称,数量和每单位价格的购买项目 .
public double getCost()//仅以给定数量返回此项目的总成本 .
public void setQuantity(int quantity)//将此购买项目的数量设置为给定值 .
最后创建测试类;
这是我的代码;
import java.util.ArrayList;
import java.util.List;
class PurchaseList{
double totalcost = 0;
private ArrayList<ItemPrice> itemlist;
PurchaseList(){
itemlist = new ArrayList<ItemPrice>(10);
}
public void add(ItemPrice item){
itemlist.add(item);
}
public double getTotalCost(){
for (ItemPrice pricelist : itemlist) {
totalcost += pricelist.getCost();
}
return totalcost;
}
}
class ItemPrice{
String name;
int quantity;
double pricePerUnit;
ItemPrice(String name, int quantity, double pricePerUnit){
this.name=name;
this.quantity=quantity;
this.pricePerUnit=pricePerUnit;
}
public double getCost(){
return pricePerUnit*quantity;
}
public void setQuantity(int quantity){
this.quantity=quantity;
}
}
public class TestPurchase{
private double item;
public static void main (String[] args) {
PurchaseList test = new PurchaseList();
ItemPrice itm =new ItemPrice("Milo",4,20.00);
ArrayList<ItemPrice> itemlist= new ArrayList<ItemPrice>();
itemlist.add(itm);
System.out.println(itm.quantity+" item(s) of "+itm.name +" is RM "+itm.getCost()+". Each item is priced at RM " + itm.pricePerUnit);
ItemPrice itm1 =new ItemPrice("Milk",4,5.00);
itm1.setQuantity(1);
itemlist.add(itm1);
System.out.println(itm1.quantity+" item(s) of "+itm1.name +" is RM "+itm1.getCost()+". Each item is priced at RM " + itm1.pricePerUnit);
System.out.println("The Total cost of item in this list is RM "+test.getTotalCost());
}
}
谢谢!!!!!!
2 回答
首先,
itemlist
是null
(并且你没有在构造函数中初始化它),所以这个应该是这样的
然后,您可以保留一个运行总计,因为项目已添加到列表中
or 你可以迭代
ItemPrice
(s)并计算getTotalCost()
被调用时的总数 .好了,因为你有一个访问器方法,你可以使用getCost()并将arraylist中的每个值添加到一个变量中 . 然后,该变量可用于返回arraylist中所有itemprices的总成本 .