Я написал метод для добавления объекта Student в массив.
void add(Student newStudent){
int i = 0;
while(i != classSize){ //classSize is the size of the roster array
if(roster[i] == null { //roster is an array of Student objects
roster[i] = newStudent;
}
i++;
}
}
Проблема, с которой я столкнулся, заключается в том, что когда я использую этот метод в своем основном классе, кажется,добавьте и напечатайте первый объект.
Часть моего основного метода:
ClassRoster firstRoster = new ClassRoster();
scan = new Scanner(inputFile).useDelimiter(",|\\n");
while(scan.hasNext()){
String name = scan.next();
int gradeLevel = scan.nextInt();
int testGrade = scan.nextInt();
Student newStudent = new Student(name,gradeLevel,testGrade);
firstRoster.add(newStudent);
System.out.printf(firstRoster.toString());
}
Входной текстовый файл будет выглядеть примерно так:
John,12,95
Mary,11,99
Bob,9,87
Однако,когда я пытаюсь распечатать массив firstRoster, он печатает только первый объект.В этом случае он напечатает Джона 3 раза.
John,12,95
John,12,95
John,12,95
Если я добавлю еще одного ученика в текстовый файл, он просто напечатает Джона 4 раза и так далее.
Метод toString в классе ClassRoster:
public String toString(){
String classString = "";
for(Student student : roster){
classString = student.toString(); //The student object uses another toString method in the Student class
}
return classString;
}