2014-02-14 10 views
0

У меня вопрос о добавлении объектов в пустую ячейку массива.Добавление объекта в пустую ячейку

У меня есть несколько объектов, которые я создал студент (имя String, двойной 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 

} 

У меня также есть метод GET, который возвращает ссылку на объект Student

public Student getStudent(int position) 

И, наконец, я метод GetName и getGPA вернуть имя и GPA метода getStudent выше

Если я запустил код и попрошу вывести имя трех объектов-учеников, сохраненных в массиве,

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

Почему вы всегда делаете stu1.getName вместо того, чтобы использовать все 3 экземпляра Стю. –

+0

Aaaaaaah !!!!! Благодаря!!! – user2861118

+0

Мы все были невиновными жертвами копирования и вставки :) –

ответ

0

Я думаю, что это:

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

должен быть таким:

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

избили меня до удара :) – wribit

+0

Спасибо. Это была опечатка с моей стороны. Однако он не изменил результат. Еще Павел Пол Пол. – user2861118

Смежные вопросы