对象数组-java-

对象数组-java-,java,arrays,object,arrayobject,Java,Arrays,Object,Arrayobject,我做了一个练习,我写了一个类CourseManager5,它在给定的时间内存储学生对象的列表 班每个学生都有一个id、姓名和分数。该类允许用户添加 学生,并显示学生的数据。。以下是UML图: 这些方法是: CourseManager 5:初始化属性并创建大小为100的学生数组的构造函数 getNStudents:返回当前学生人数 addStudent:将具有给定对象的学生添加到列表中。如果课程已满, 它打印错误消息:“错误:课程已满” displayStudent:显示索引i处学生的所有数据。

我做了一个练习,我写了一个类CourseManager5,它在给定的时间内存储学生对象的列表 班每个学生都有一个id、姓名和分数。该类允许用户添加 学生,并显示学生的数据。。以下是UML图: 这些方法是:

  • CourseManager 5:初始化属性并创建大小为100的学生数组的构造函数
  • getNStudents:返回当前学生人数
  • addStudent:将具有给定对象的学生添加到列表中。如果课程已满, 它打印错误消息:“错误:课程已满”
  • displayStudent:显示索引i处学生的所有数据。 编写一个名为TestCourseManager5的主类,其main方法将 请执行以下操作:
    • 它创建一个CourseManager5对象
    • 然后,它通过读取用户的ID、姓名和分数来添加3名学生
    • 然后,它显示课堂上的所有学生
我写程序。。但是我对方法displayStudent有问题。。我不知道为什么

还有一件事:方法添加学生正确吗

以下是我的节目:

import java.util.Scanner;
public class TestCourseManager5 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        courseManager5 cm = new courseManager5();
        int num =0;
        for(int i =0; i < 3;i++){
            System.out.println("Please enter the ID, name, and score of student "+num+":");
            int id = s.nextInt();
            String name = s.next();
            double score = s.nextDouble();
            student su = new student(id, name, score);
            cm.addStudent(su);
            num++;}

        System.out.println("Student are: ");
        for(int i=0;i<cm.getNStudent();i++){
        cm.displayStudent(i);
        }}}

public class student {
    private int id;
    private String name;
    private double score;                   
    public student(int id, String name, double score){
        this.id = id;
        this.name = name;
        this.score = score;}

    public int getId(){
        return id;}

    public String getName(){
        return name;}

    public double getScore(){
        return score;}}

public class courseManager5 {
private student []students;
private int nStudent;
public static int MAX_SIZE = 100;

public courseManager5(){
    students = new student[MAX_SIZE];
    nStudent = 0;}
import java.util.Scanner;
公共类TestCourseManager 5{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
CourseManager 5 cm=新CourseManager 5();
int num=0;
对于(int i=0;i<3;i++){
System.out.println(“请输入学生的ID、姓名和分数”+num+“:”);
int id=s.nextInt();
字符串名称=s.next();
双倍分数=s.nextDouble();
学生su=新学生(id、姓名、分数);
cm.addStudent(su);
num++;}
System.out.println(“学生是:”);

对于
addStudent
方法中的(int i=0;i),您没有将传入的学生添加到数组中。请尝试以下操作:

students[nStudent] = newStudent;
public void addStudent (student newStudent){ 
    if(nStudent < MAX_SIZE)
        students[nStudent++] = newStudent;
    else
        System.out.println("ERROR: COURSE IS FULL");}

您的问题出现在addStudent()中。您从未将学生添加到数组中。因此,这导致displayStudent()中出现null。请尝试以下操作:

students[nStudent] = newStudent;
public void addStudent (student newStudent){ 
    if(nStudent < MAX_SIZE)
        students[nStudent++] = newStudent;
    else
        System.out.println("ERROR: COURSE IS FULL");}
public void addStudent(学生新闻学生){
如果(学生<最大尺寸)
学生[nStudent++]=新学生;
其他的
System.out.println(“错误:课程已满”);}

是的,问题出在哪里?我对方法displayStudent有问题,我不知道为什么???问题出在哪里?谢谢你..它起作用了..我下周要考试..你知道youtube上有哪个频道可以帮助我处理对象数组..因为我对它知之甚少..再次感谢你..如果它起作用了,请投票回答并接受它为answ为了更好地理解java数组,请看看这个和这个。