2013-09-22 88 views
0

我正在尝试执行以下操作:ArrayList中的元素总数

这是一种总计猫的ArrayList中所有猫腿的方法。

但是,我似乎无法将数组中的猫腿总数加起来,或将其显示在控制台上。

public static int getNumOfLegs() 
{ 

    return numOfLegs; 
} 

public void setNumOfLegs(int numOfLegs) 
{ 
    this.numOfLegs = numOfLegs; 

} 



    public static int totalNumOfLegs(ArrayList<Cat> catList) 
{ 
    int total = 0; 
    for (Cat c: catList) 
    { 
     total = total + getNumOfLegs(); 
    } 


    return total; 

} 

非常感谢。

+1

'返回4 * catList.size()'如果你因截肢猫而关闭,就把它叫做实验性错误.-) – Tenner

+0

所以,'numOfLegs'是一个静态成员?如果它不是如何从静态方法返回它?如果是这样,你为什么通过'setNumOfLegs()'''设置它的值' – einpoklum

回答

6

变化:

total = total + getNumOfLegs(); 

要:

total = total + c.getNumOfLegs(); 
+0

有遗憾的应该是猫截肢者:(谢谢你们两个!我怎么会去显示到控制台?我有System.out.println(“训练的狗的总数是:”+ getNumOfLegs());但它不起作用 – user2268587

+0

'System.out.println(“数字是”+ totalNumOfLegs(aListOfCats))''。但在我看来,你在这里的“设计”中已经犯了一些更为根本性的错误,比如你怎么有一种计算猫腿的方法......但是你试图打印训练的狗的数量? –

+0

啊是的,我也制作了一个Dog程序,它里面也有相同的东西,我真的只是从那里拷贝它,但现在是正确的了,现在我要把它放在System.out.println(“数字是”+“ totalNumOfLegs(aListOfCats))我的数组被称为catList,所以我假设我替换它,但是当我pu这一行:/我只是用这个脚本最糟糕的时间。 – user2268587

0

假设每只猫都有不同数量的腿 - 你将需要单独合计每只猫的腿。为此,您需要在for循环中使用您的猫对象(您将其命名为c)以获取腿的数量。 (建议已经为c.getNumOfLegs();

此外,您的静态方法getNumOfLegs和setNumOfLegs应在猫的类定义(而不是静态的,当然)