gpt4 book ai didi

java - 如何使我的方法接受 x 个参数

转载 作者:行者123 更新时间:2023-12-01 09:48:44 25 4
gpt4 key购买 nike

我面临着一个非常简单的困境。我正在尝试创建一个程序来计算输入计算器的所有数字的平均值、总和和计数。问题是我只能接受一个或三个输入(取决于我的方法参数中列出的变量数量)。如何使我的 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++查看这部分的评论

中学

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; }
}

最佳答案

Java 支持这一点。被称为“varargs”。如果将“...”添加到类型中,则可以根据需要重复多次(包括 0 次),然后在函数中将其作为数组处理。这可能是这样的(此代码完全未经测试):

public void add(int... newNums) {
for (int num : newNums) {
sum += num;
count++;
}
}

您可以多读一点here .

关于java - 如何使我的方法接受 x 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com