如何添加两个方法一起返回

时间:2013-10-20 23:21:26

标签: java methods return-value

好的,我有一个方法

public static int getTotalLegCountDog (ArrayList<Dog> dogList)
{

    int temp = 0;
    for (int i = 0; i < dogList.size(); i++)
    {
        temp = dogList.get(i).getNumLegs();
        totalLegsDogs += temp;
    }
    return totalLegsDogs;
}

它将狗的总腿数加起来并将它们作为totalLegsDogs返回,并且还有另外一个用于猫的腿。

现在我想要一个方法,既可以获取返回的totalLegsDogs,也可以返回totalLegsCats,并将它们一起添加。我的尝试在下面(它返回0),任何帮助都会很棒!

public int getTotalLegCount ()
{
    totalLegs = totalLegsDogs + totalLegsCats;
    return totalLegs;
}

3 个答案:

答案 0 :(得分:0)

未正确调用方法。问题中的数学是坚实的。问题是Method输出调用。

答案 1 :(得分:0)

据我所知,这些方法本身并没有错 - 可能是你在实际计算腿部之前调用getTotalLegCount

修复1 (首选):getTotalLegCount调用方法。

public int getTotalLegCount (ArrayList<Dog> dogList, ArrayList<Cat> catList) {
  totalLegs = getTotalLegCountDog(dogList) + getTotalLegCountCat;
  return totalLegs;
}

修复2 :让非常明确要先调用计腿法。这是一个劣等的解决方案,因为它需要更多的努力来对待未来的程序员(可能是未来 - 你!)。

答案 2 :(得分:0)

我认为您没有向我们展示足够的代码来进行任何故障排除。看起来你必须对狗腿和猫腿有全局静态计数?我无法弄清楚你的用例,但无论如何,你需要确保在对成员变量做任何事情之前调用你的计数方法,否则它们将不会被初始化。例如:

DogCatCounter.getTotalLegDogCount(...);
DogCatCounter.getTotalLegCatCount(...);
new DogCatCounter().getTotalLegCount();

只要DogCatCounter的其他实例没有修改静态变量,第三行的结果就应该是正确的。换句话说,如果您有多个DogCatCounter实例,则对您的计数方法的任何调用都将修改您的全局静态成员。