2014-02-14 130 views
0

我有一個關於將對象添加到空數組單元格的問題。將對象添加到空單元格

我有一對夫婦,我創建學生(字符串名稱,雙擊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。那些是我在做的任務中的條件。

以下是完整的add方法

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方法返回名稱和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))); 

我得到:

保羅 保羅 保羅

我不明白爲什麼我得到這個輸出。我的代碼是正確的添加方法嗎?這似乎是合乎邏輯的:如果單元格爲空,則將值添加到它。如果沒有,則循環到下一個單元格並檢查。

+0

爲什麼你總是在做stu1.getName,而不是使用所有3個STU實例。 –

+0

Aaaaaaah !!!!!謝謝!!! – user2861118

+0

我們都是無辜的複製和粘貼的受害者:) –

回答

0

我想這:

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

應該是這樣的:

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

打我衝一下:) – wribit

+0

謝謝。這是我的一個錯字。儘管如此,它並沒有改變輸出。仍保羅保羅。 – user2861118