【问题标题】:Adding Object to an empty cell将对象添加到空单元格
【发布时间】: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 实例。
  • 啊啊啊啊!!!!!!谢谢!!!
  • 我们都是复制粘贴的无辜受害者 :)

标签: arrays object cell


【解决方案1】:

我认为是这样的:

if (students[0] == null)
    students[0] = aStudent;

应该是这样的:

if (students[i] == null)
    students[i] = aStudent;

【讨论】:

  • 打我一拳:)
  • 谢谢。那是我的一个错字。但它并没有改变输出。还是保罗保罗保罗。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
  • 2020-07-06
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多