2017-01-22 83 views
-1

我正在练习制作数组。我创建了两个类。第一类(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创建处理器的一个实例,并要求用户输入10个值的数组。然后我调用第一类的方法并打印它们的值。但是,当我编译这个类时,出现以下错误:“incompatible type- int cannot be converted to Processor”。

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

请为你着想和我们自己,尽量让你更好的压痕。要么让你的IDE为你做你的代码缩进(大多数有一个格式代码命令),或者学习代码缩进的标准规则并遵循它们。这将使我们更容易遵循您的代码。提前致谢。 –

+0

它非常简单。您正尝试将一个int值赋给一个Program变量 – 2017-01-22 20:42:28

回答

1

你已经宣布投入作为Processor数组:

Processor[] inputs = new Processor[10]; 

一个Processor包含整数数组,但Processor不是整数。因此,这是不合法的:

inputs[i] = keyboard.nextInt(); 

说,采取第Processor并为其分配一个整数。但是inputs[i]Processor,因此您只能将Processor指定给它。

专业提示:当编译器给你一个错误,它会告诉哪个文件导致哪个错误。在发布问题时,请始终指出导致编译错误的行,因为这样可以避免人们不得不读取文件的每一行,以查找问题。

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();

这会导致此特定错误。

0

我将建议在至少以下变化:

处理器类

变化

public Processor() { 
    int[] numbers = new int[10]; 
} 

public Processor() { 
    value = new int[10]; 
} 

ProessorTest类

在main方法,

变化

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()); 
    } 
相关问题