java错误:AverageFINAL类中的构造函数AverageFINAL无法应用于给定类型;
目标: 创建一个AverageDriver类。此类仅包含main方法。 main方法应该声明并实例化一个平均对象。平均数 然后应将对象信息打印到控制台
我在创建最后一段代码的对象部分时遇到了问题。我试着跟随我的课本,但仍然收到一条错误信息
import java.util.Scanner;
/**
* The Average class calculates the average of the test
* scores entered and puts the scores into descending order.
*/
public class AverageFINAL
{
private int[] data;
public int calculateMean()
{
int total = 0;
int mean;
for (int index = 0; index < data.length; index++)
total += data[index];
mean = total / data.length;
return mean;
}
public int selectionSort()
{
int startScan, index, minIndex, minValue;
for (startScan = 0; startScan < (data.length-1); startScan++)
{
minIndex = startScan;
minValue = data[startScan];
for(index = startScan + 1; index < data.length; index++)
{
if (data[index] < minValue)
{
minValue = data[index];
minIndex = index;
}
}
data[minIndex] = data [startScan];
data [startScan] = minValue;
}
return data[startScan];
}
}
import java.util.Scanner;
public class AverageDriver
{
public static int main(String[] args)
{
int[] data = new int[5];
AverageFINAL object = new AverageFINAL(data);
getValues(data);
System.out.println("The test scores you entered, in descending order, are:");
System.out.println(object.selectionSort());
System.out.println("The average is" + object.calculateMean() +".");
}
private static int getValues(int[] data)
{
Scanner keyboard = new Scanner(System.in);
for (int index = 0; index < data.length; index++)
{
System.out.println("Enter score #" + (index + 1) + ": ");
data[index] = keyboard.nextInt();
}
keyboard.close();
}
}
我收到的错误消息是:
1 error found:
File: C:\Users\bryan\Downloads\AverageDriver.java [line: 9]
Error: constructor AverageFINAL in class AverageFINAL cannot be applied to given types;
required: no arguments
found: int[]
reason: actual and formal argument lists differ in length
# 1 楼答案
在
AverageFINAL
中没有定义任何构造函数。在这种情况下,Java会创建一个默认的无参数构造函数这就好像是被定义的:
但是,您试图在此行中传递
int[]
:如果要传递
int[]
,则必须显式创建一个构造函数,该构造函数将int[]
作为其参数,并且可能希望将该int[]
分配给实例变量data
# 2 楼答案
在以下情况下使用时,需要一个带参数的构造函数:
试试这个: