我有一个关于将对象添加到空数组单元格的问题。
我有几个我创建的对象(String name,double GPA)
Student stu1 = new Student("Paul", 2.0);
Student stu2 = new Student ("John", 3.0);
Student stu3 = new Student("Simon", 2.0);
我有一个创建数组的教室对象
Classroom class1 = new Classroom(3);
“课堂”中的数组是私有的,所以我使用
添加学生public boolean add(Student aStudent)
class1.add(stu1);
class1.add(stu2);
class1.add(stu3);
此方法检查下一个空单元格,然后将Student对象放入。如果数组已满,则返回false。这些是我正在做的任务中的条件。
这是完整的添加方法
public boolean add(Student aStudent) {
for(int i = 0; i <=(students.length-1); i++)
{
if (students[i] == null)
students[i] = aStudent;
}
return true; //not important for my question
}
我还有一个返回Student对象引用的get方法
public Student getStudent(int position)
最后我有一个getName和getGPA方法来返回上面的getStudent方法的名称和GPA
如果我运行代码并要求输出保存在数组中的三个学生对象的名称,
System.out.println(stu1.getName(class1.getStudent(0)));
System.out.println(stu1.getName(class1.getStudent(1)));
System.out.println(stu1.getName(class1.getStudent(2)));
我明白了:
保 保罗 保罗
我不明白为什么我得到这个输出。我是否正确编写了添加方法?这似乎是合乎逻辑的:如果单元格为null,则将值添加到它。如果没有,请循环到下一个单元格并检查。
答案 0 :(得分:0)
我想这个:
if (students[0] == null)
students[0] = aStudent;
应该是这样的:
if (students[i] == null)
students[i] = aStudent;