【发布时间】:2016-10-12 19:02:31
【问题描述】:
我可能面临一个非常简单的困境。我正在尝试创建一个程序来计算输入到计算器的所有数字的平均值、总和和计数。这样做的问题是我只能接受一个或三个输入(取决于我的方法参数中列出的变量数量)。如何让我的 add() 方法实际接受 n 个输入而不是预定义的集合?
主类
public class Calculator
{
public static void main (String [] args)
{
AverageCalculator calculation1 = new AverageCalculator();
AverageCalculator calculation2 = new AverageCalculator();
calculation1.add(13);
System.out.println("Sum: " + calculation1.getSum());
System.out.println("Count: " + calculation1.getCount());
System.out.println("Average: " + calculation1.getAverage());
System.out.println();
calculation2.add(3, 7, 12); // Error due to method parameters
System.out.println("Sum: " + calculation2.getSum());
System.out.println("Count: " + calculation2.getCount());
System.out.println("Average: " + calculation2.getAverage());
}
}
编译时出现错误:
Calculator.java:28: error: method add in class AverageCalculator cannot be applied to given types;
calc2.add(3, 7, 12);
然后我会遇到如何处理我的 add() 方法的功能。我知道它必须做什么,我确信我必须添加一个 for 循环。但是,它没有给定的解析长度。我有我的i = 0; i < calculation 2; i++ 吗? 参见这部分的 cmets
中学班
public class AverageCalculator
{
private int sum;
private int count;
public AverageCalculator () {}
public void add (int newNum) // One input due to single parameter
{
// How to accept the multiple input from main class with this mutator
// and successfully manipulate data in this method
sum += newNum;
count++;
}
public int getSum()
{ return sum; }
public int getCount()
{ return count; }
public double getAverage()
{ return (double) sum / count; }
}
【问题讨论】:
-
这叫做varargs。请看"When do you use varargs in Java?"
-
有类似的问题。参考下链接。 stackoverflow.com/questions/17837117/…
标签: java class math methods parameters