2016-03-09 54 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