【发布时间】:2014-02-14 05:05:37
【问题描述】:
我有一个关于将对象添加到空数组单元格的问题。
我创建了几个对象 Student(字符串名称,双倍 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);
Classroom 中的数组是私有的,所以我正在添加学生使用
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
}
我还有一个 get 方法可以返回 Student 对象的引用
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)));
我明白了:
保罗 保罗 保罗
我不明白为什么我会得到这个输出。我对 add 方法进行了编码吗?这似乎是合乎逻辑的:如果单元格为空,则将值添加到其中。如果没有,则循环到下一个单元格并检查。
【问题讨论】:
-
为什么你总是做 stu1.getName 而不是使用所有 3 个 stu 实例。
-
啊啊啊啊!!!!!!谢谢!!!
-
我们都是复制粘贴的无辜受害者 :)