我的代码应该计算出数组值的平均值并打印出来。 我在这里,
public class ArrayAverageTester
{
public static void main(String[] args)
{
int[] numArray = {12, 17, 65, 7, 30, 88};
// Create an ArrayAverage object and print the result
ArrayAverage[] arr = {12, 17, 65, 7, 30, 88};
System.out.println("The average of the array is " + arr.getAverage());
}
}
还有我的ArrayAverage类,
public class ArrayAverage
{
private int[] values;
public ArrayAverage(int[] theValues)
{
values = theValues;
}
public double getAverage()
{
int sum = 0;
for(int value : values)
{
sum += value;
}
return (sum/values.length);
}
}
我的错误是说int无法转换为ArrayAverage,并且我忘记了声明方法getAverage()或它超出范围。
答案 0 :(得分:1)
首先,您的getAverage()
方法(当前)执行整数数学运算。您可以像这样
public double getAverage() {
int sum = 0;
for (int value : values) {
sum += value;
}
return (sum / (double) values.length);
}
接下来,您需要构造一个新 ArrayAverage
实例(不是它们的数组),然后将构造函数的数组传递给平均值。喜欢,
ArrayAverage arr = new ArrayAverage(numArray);
输出
The average of the array is 36.5
答案 1 :(得分:0)
您的语法不正确。 ArrayAverage[]
的意思是“ ArrayAverage
个数组”。您应该:
int[]
ArrayAverage
的单个实例您得到的错误是编译器正在寻找在数组而不是getAverage()
上定义的函数ArrayAverage
。
以下两种方法均应起作用:
public static void main(String[] args) {
int[] values = {1, 2, 3, 4, 5};
double count = 0;
for (int i = 0; i < values.length; i++) {
count += values[i];
}
count /= values.length;
System.out.println(count);
}
或者使用您的课程:
public static void main(String[] args) {
System.out.println(new ArrayAverage(Arrays.asList(1, 2, 3, 4, 5)).getAverage());
}
使用
public class ArrayAverage {
private int[] values;
public ArrayAverage(int[] values) {
this.values = values;
}
public double getAverage() {
double count = 0;
for (int i = 0; i < values.length; i++) {
count += values[i];
}
return /= values.length;
}
}
答案 2 :(得分:0)
这是有关面向对象编程的一个基本问题,要测试ArrayAverage类,必须实例化一个对象(为此使用保留字“ new”),并且错误是您正在创建ArrayAverage数组
要使其按需工作,只需要将numArray作为参数发送到ArrayAverage类。
save
答案
数组的平均值为36.0