我正在开发一个项目,它有一个名为Items的类和一个名为totals的方法,它计算一个Items对象数组的总计。 由于某种原因,它无法看到物品,我知道我错过了一些简单或明显的东西,但我无法弄明白。蚂蚁帮助将不胜感激。
public void totals(){
int index=0;
for (Iterator it = items.iterator(); it.hasNext();) {
Items i = it.next();
double itotal;
itotal = items.get(index).Items.getTotal();
}
}
这里是Items类
public class Items {
public String name;//instance variable for item name
public int number;//instance variable for number of item
public double price;//instance variable for unit price
public double total;//instance variable for total
Items(String name,int number,double price){
this.name=name;
this.number=number;
this.price=price;
total=number*price;
}
public void setName(String name){
this.name=name;
}
public void setNumber(int number){
this.number=number;
}
public void setPrice(double price){
this.price=price;
}
public void setTotal(){
total=number*price;
}
public String getName(){
return name;
}
public int getNumber(){
return number;
}
public double getTotal(){
return total;
}
public double getPrice(){
return price;
}
提前感谢您的帮助。
答案 0 :(得分:2)
基本上,有两个缺点:
itotal
变量并在循环中声明它i
而且,您的totals
方法不应该返回某些内容(例如itotal
)吗?
我看到它的方式,迭代该项数组的正确方法是
public double totals(){
double itotal = 0.0; //#A
for (Iterator<Items> it = items.iterator(); it.hasNext();) { //#B
Items i = it.next(); //#C
itotal += i.getTotal(); //#D
}
return itotal; //#E
}
基本上:
itotal
变量(循环外),其中包含所有项目的总计答案 1 :(得分:0)
这里有许多潜在的问题。
在for循环中,您声明Items i
,但从不使用它。也许it = it.next()
应该是for循环的一部分呢?
您致电items.get(index)
,但index
始终为0.您可能希望在此使用it
。
您声明double itotal
并在for循环中分配它,因此在每次迭代时都会覆盖它。也许你想用循环外的初始值声明它,然后在循环内增加它。