2016-03-09 95 views
0

嗨,我很新的編程,我試圖在eclipse中編寫一個程序,執行以下操作。顯示對象數組的細節

  • 創建一個具有4個屬性的學生類:用戶輸入的名稱,標記,課程和電話號碼。
  • 有一個構造函數,它將這四個屬性初始化爲傳入的參數,以及一個顯示Student的詳細信息的display()方法。
  • 聲明一個包含5個Student對象的空數組。
  • 使用這些變量在數組的當前位置創建一個Student對象。
  • 創建一個調用數組中每個Student的display()方法的循環。

到目前爲止,我已經完成了該程序,它創建了5個學生的數組,並從用戶中讀取四個不同的屬性。但我無法弄清楚如何創建一個循環來調用每個學生的顯示方法。 這是到目前爲止我的代碼..

import java.util.Scanner; 

public class Student { 


    private String name, course; 
    private int mark, number; 


    public Student(String nameIn, String courseIn, int markIn, int numberIn) 
    { 
     this.name = nameIn; 
     this.course = courseIn; 
     this.mark = markIn; 
     this.number = numberIn; 
    } 


    public void display() 
    { 
     System.out.println("Name: " + this.name + " Course " + this.course + " mark: " + this.mark + " Number " + this.number); 

    } 

    public static void main (String[] args) 
    { 

     String[] Student = new String[5]; 


     Scanner scanner = new Scanner(System.in); 




     for (int counter=0; counter< 5; counter++) 
     { 
      System.out.println("Enter name for student " + counter); 
      Student[counter] = scanner.nextLine(); 
      System.out.println("Enter course for student " + counter); 
      Student[counter] = scanner.nextLine(); 
      System.out.println("Enter mark for student " + counter); 
      Student[counter] = scanner.nextLine(); 
      System.out.println("Enter number for student " + counter); 
      Student[counter] = scanner.nextLine(); 

     } 
     for (int counter=0; counter< 5; counter++) 
     { 
      System.out.println(Student[counter].display()); 

     } 
    } 
} 

PS提前對不起,如果我已經發布了這個問題錯了。它是我的第一篇文章,我在其他地方找不到類似的問題。 在此先感謝。

回答

0

您當前的代碼不會創建Student的數組,也不會正確填充它(每個循環會覆蓋前面的數據)。

此外,你還叫display的方式是錯誤的:

System.out.println(Student[counter].display()); 

首先,你要調用displayStudent一個實例,而不是類。 其次,你不必叫System.out.println,因爲display已經做這項工作(並調用System.out.printlnvoid參數,因爲display方法沒有返回,將讓你無處)

試試這個方法:

Student[] students = new Student[5]; 

for (int counter=0; counter< 5; counter++) 
     { 

      System.out.println("Enter name for student " + counter); 
      String name = scanner.nextLine(); 
      System.out.println("Enter course for student " + counter); 
      String course = scanner.nextLine(); 
      System.out.println("Enter mark for student " + counter); 
      String mark = scanner.nextLine(); 
      System.out.println("Enter number for student " + counter); 
      String number = scanner.nextLine(); 

      Student student = new Student(name, course, mark, number); 

      students[counter] = student; 

     } 

for (int counter=0; counter< students.length; counter++) 
     { 
      students[counter].display(); 

     } 
+0

雖然你是對的,你也沒有解決他的問題。他在問如何顯示每個學生的信息。我們應該儘可能最好地回答他的問題,而不用給他一個工作解決方案,你不覺得嗎?由於他的計劃中的錯誤而遇到的任何問題都是他要學習的,而不是我們的代表。 – Neil