2017-01-22 68 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()); 
    } 
相關問題