2014-04-04 144 views
0

有人請向我解釋我的構造函數方法有什麼問題?我嘗試了一百萬種不同的東西,但似乎沒有任何工作。我應該創建一個類(ScanArray),其中包含一個構造函數和兩個方法,用於查找在主類中創建的數組的最大值和最小值。這是我到目前爲止。構造函數類不能應用

import java.util.Scanner; 

public class Assign7_Polk { 

    public static void main(String[] args) { 

     Scanner input = new Scanner(System.in); 

     int[] midTerm1 = new int[8]; 
     int[] midTerm2 = new int[8]; 
     int[] finalExam = new int[8]; 
     int[] grades = new int[8]; 

     for (int i = 0; i < midTerm1.length; i++) { 
      System.out.println("Enter the 8 Mid Term 1 grades: "); 
      midTerm1[i] = input.nextInt(); 
     } 
     for (int i = 0; i < midTerm2.length; i++) { 
      System.out.println("Enter the 8 Mid Term 2 grades: "); 
      midTerm2[i] = input.nextInt(); 
     } 
     for (int i = 0; i < finalExam.length; i++) { 
      System.out.println("Please enter 8 Final Exam grades: "); 
      finalExam[i] = input.nextInt(); 
     } 
     for (int i = 0; i < grades.length; i++) { 
      grades[i] = (midTerm1[i] + midTerm2[i] + finalExam[i]); 
     } 
    } 
} 

class ScanArray { 

    int Max = 0; 

    public ScanArray(int grades) {} 

    int FindMax(int[] grades) { 
     int Max = grades[0]; 
     for (int i = 1; i < grades.length; i++) { 
      if (grades[i] > Max) { 
       Max = grades[i]; 
      } 
     } 
     return Max; 
    } 

    int FindMin(int[] grades) { 
     int Min = grades[0]; 
     for (int i = 1; i > grades.length; i++) { 
      if (grades[i] < Min) { 
       Min = grades[i]; 
      } 
     } 
     return Min; 

     ScanArray findarray = new ScanArray(); 

     int highest = findarray.FindMax(); 
     int lowest = findarray.FindMin(); 

     System.out.println("The highest grade is " + highest); 
     System.out.println("The lowest grade is " + lowest); 
    } 
} 
+0

你在哪裏設置牌號表示如果您不使用該構造函數,則傳遞給ScanArray(int等級),爲什麼使用它以及如何創建ScanArray對象。你有關於構造函數如何在java中工作的信息 – vikeng21

回答

0

添加默認構造函數類

public ScanArray(){ 


} 

既然您已經定義了一個構造ScanArray類的參數,編譯器不會自動生成默認的無參數的構造函數。請添加它手動

其他方式只是改變你構建ScanArray比如像新的一樣ScanArray(5);

0

從構造函數中刪除的說法,順便只是

public ScanArray(){} 
0

只要刪除你的構造public ScanArray(int grades) - 它什麼都不做,編譯器會自動爲你添加默認的無參數構造函數。

0
public ScanArray() 
{ 
} 

使用上述或刪除構造

int highest = findarray.FindMax();//pass integer array 
int lowest = findarray.FindMin();//pass integer array 

檢查了這一點還是需要傳遞整型數組來獲得最高值和最低值。

0

當您定義除默認no-argument constructor以外的構造函數時,Java不會自動將默認構造函數添加到您的類中。因此,在這種情況下,因爲您所定義的參數的constuctor:

public ScanArray(int grades) 
{ 
} 

您必須添加明確的no-argument constructor如果你曾經打算用它在你的代碼:

public ScanArray() 
{ 
} 
相關問題