我正在练习制作数组。我创建了两个类。第一个类(Processor类)包含一个参数,该参数接受用户输入的10个值的数组。它还包含4种处理方法:输入的数字的平均值,最大值,最小值和toString方法。这个类编译没有错误。
import java.util.Arrays;
public class Processor {
public int[] value;
int aSum = 0;
int largest = value[0];
int smallest = value[0];
private int number;
public Processor() {
int[] numbers = new int[10];
}
public void arrayAverage(int[] value) {
double average = 0;
for (int i = 0; i < value.length; i++) {
aSum = aSum + value[i];
average = aSum / value.length;
}
}
public void arrayMax() {
for (int i = 1; i < value.length; i++) {
if (value[i] > largest) {
largest = value[i];
}
}
}
public void arrayMin() {
for (int i = 1; i < value.length; i++) {
if (value[i] < smallest) {
smallest = value[i];
}
}
}
public String toString() {
return Arrays.toString(value);
}
}
第二个类ProcessorTester
创建一个Processor实例,并要求用户输入10个数组值。然后我从第一个类调用方法并打印它们的值。但是,当我编译这个类时,我收到以下错误:&#34; incompatible type- int cannot be converted to Processor
&#34;。
import java.util.Scanner;
public class ProcessorTester {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
Processor[] inputs = new Processor[10];
System.out.println("Input 10 values for the array: ");
for (int i = 0; i < inputs.length; i++) {
inputs[i] = keyboard.nextInt();
}
System.out.println("The average of the numbers inputed is: ");
System.out.println(arrayAverage.inputs());
System.out.println("The largest of the numbers inputed is: ");
System.out.println(arrayMax.inputs());
System.out.println("The smallest of the numbers inputed is: ");
System.out.println(arrayMin.inputs());
System.out.println("The numbers inputed are: ");
System.out.println(toString.inputs());
}
}
这是Processor
类主要方法中的编码问题吗?
答案 0 :(得分:0)
您已将输入声明为Processor
:
Processor[] inputs = new Processor[10];
Processor
包含整数数组,但Processor
不是整数。因此,这不合法:
inputs[i] = keyboard.nextInt();
表示取第Processor
并为其指定一个整数。但inputs[i]
是Processor
,因此您只能为其分配Processor
。
Pro-tip:当编译器给出错误时,它会告诉哪个文件行导致错误。发布问题时,始终会指出导致编译错误的行,因为这样可以避免人们在尝试查找问题时阅读文件的每一行。
答案 1 :(得分:0)
在这里查看您的代码:
Processor[] inputs=new Processor[10]; //1
for(int i=0; i<inputs.length;i++)
{
inputs[i]=keyboard.nextInt(); //2
}
//1
您创建了一个Processor
类型的数组
//2
您尝试使用整数inputs[i]=keyboard.nextInt();
这会导致此特定错误。
答案 2 :(得分:0)
我将至少推荐以下更改:
处理器类
更改
public Processor() {
int[] numbers = new int[10];
}
到
public Processor() {
value = new int[10];
}
ProessorTest Class
在主要方法中,
变化
Processor[] inputs = new Processor[10];
System.out.println("Input 10 values for the array: ");
for (int i = 0; i < inputs.length; i++) {
inputs[i] = keyboard.nextInt();
}
到
Processor inputs = new Processor();
System.out.println("Input 10 values for the array: ");
for (int i = 0; i < inputs.length; i++) {
inputs.value.add(keyboard.nextInt());
}