好的,我有一个方法
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;
}
答案 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
实例,则对您的计数方法的任何调用都将修改您的全局静态成员。