Java 循环对象专用数组

Java 循环对象专用数组,java,arrays,loops,Java,Arrays,Loops,我确信我的循环代码是错误的,但就我个人而言,我看不出它是什么 我必须创建一个Student(字符串名,双gpa)对象 我有一个班级教室,它初始化一个私有数组students[]。我问用户要创建多少个学生。使用循环,我询问每个学生的姓名和gpa,并使用add(student aStudent)方法将其添加到数组中。我的方法应该检查单元格是否为空。如果是,请添加对象。如果没有,请转到下一个单元格。我无法创建多个Student对象 我还有一个get方法返回特定数组单元格的引用 这是课堂教学,添加和获取

我确信我的循环代码是错误的,但就我个人而言,我看不出它是什么

我必须创建一个
Student(字符串名,双gpa)
对象

我有一个班级教室,它初始化一个私有数组
students[]
。我问用户要创建多少个学生。使用循环,我询问每个学生的姓名和gpa,并使用
add(student aStudent)
方法将其添加到数组中。我的方法应该检查单元格是否为空。如果是,请添加对象。如果没有,请转到下一个单元格。我无法创建多个
Student
对象

我还有一个get方法返回特定数组单元格的引用

这是课堂
教学
添加
获取
方法。变量由赋值设置

public class Classroom {

    private boolean hasSpace = false;
    int maxClassroomSize;
    private Student students[];

    public Classroom (int size){
        maxClassroomSize = size;
        students = new Student[maxClassroomSize];


    }



    public boolean add (Student aStudent) {
        for(int i = 0; i <=(students.length-1); i++)
        {
            if (students[i] == null) {
                students[i] = aStudent;
                hasSpace = true;
            } else hasSpace = false;
        } return hasSpace;          
    }


    public Student getStudent(int position){
            return students[position];

    }

}
公共课堂{
私有布尔hasSpace=false;
int maxClassroomSize;
私立学生[];
公共教室(整型){
maxClassroomSize=大小;
学生=新学生[maxClassroomSize];
}
公共布尔加法(学生加法){
for(int i=0;i类大小)
System.out.println(“班级人数太多,请重试”);
}while(numberStudentsInput>classSize);

对于(int i=0;i您正在将同一个学生对象添加到所有单元格。因此,当您更改该对象时,您将同时在已有该对象的旧单元格和要添加该对象的新单元格中进行更改。您说“无法创建多个学生对象”我不明白为什么不能,但这是问题的核心。

您必须在for循环中创建一个新的Student对象

Student student1;

for(...) {
 student = new Student(); 
 ..
 classroom.add(student);
}
Student student1;

for(...) {
 student = new Student(); 
 ..
 classroom.add(student);
}