Ich versuche, das aktuelle Array-Element im Temp-Array mit dem Student-Objekt nach dem Aufruf der getStudent-Methode zurückgegeben .... Ich rief die Methode getStudent (Schritt 2) und temp [ i] = das aktuelle Element im temp-Array zuweisen, aber nicht herausfinden, was es tun soll = um es mit dem zurückgegebenen Student-Objekt zu paaren. Wenn getStudent() verwendet wird und das Programm ausgeführt wird, gibt die Ausgabe die Anzahl der Schüler ein, der Benutzer gibt die Nummer ein und das ist alles, was passiert, es fragt nicht, ob der Benutzer den Namen eingeben soll usw., ich bin es nicht Sicher, ob Schritt 2 das Problem ist oder ob es ein anderes Problem gibt.Zuweisen und Zurückgeben von Objekten in Java
import java.util.Scanner;
public class Students
{
private static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
Student[] students;
students = getStudents();
printStudents(students);
}
private static Student[] getStudents()
{
Student[] temp;
int how_many;
System.out.print("How many students? ");
how_many = input.nextInt();
purgeInputBuffer();
temp = new Student[input.nextInt()]; // Step 1 ???
for (int i = 0; i < temp.length; i++)
{
getStudent(); // Step 2
temp[i] = ; // <----------
}
return temp; // Step 3
}
private static Student getStudent()
{
String name,
address,
major;
double gpa;
System.out.print("Enter name: ");
name = input.nextLine();
System.out.print("Enter address: ");
address = input.nextLine();
System.out.print("Enter major: ");
major = input.nextLine();
System.out.print("Enter GPA: ");
gpa = input.nextDouble();
purgeInputBuffer();
return new Student (name, address, major, gpa); // Step 4
}
private static void printStudents(Student[] s)
{
System.out.println();
for (int i = 0; i < s.length; i++) // Step 5
{
System.out.println(getStudent()); // Step 6
}
}
private static void purgeInputBuffer()
{
// ----------------------------------------------------
// Purge input buffer by reading and ignoring remaining
// characters in input buffer including the newline
// ----------------------------------------------------
input.nextLine();
}
}
warum nicht zu verwenden: 'temp [i] = getStudent();// Schritt 2'? – Cootri
Wenn Sie das verwenden und das Programm ausführen, gibt die Ausgabe die Anzahl der Schüler ein, der Benutzer gibt die Nummer ein, und das ist alles, was passiert, fragt den Benutzer nicht nach dem Namen usw. – Beeeee
Ich bin mir ziemlich sicher Was @ Couti gesagt hat, ist, was Sie tun sollten. Aber schauen Sie sich auch Ihre 'private static void printStudents (Student [] s)' -Methode und genau die Zeile '// step 6' an. Ich glaube nicht, dass Sie das so machen wollen. Stattdessen wollen Sie 'System.out.println (s [i]);' nicht 'System.out.println (getStudent());' Damit meine Codeersetzung funktioniert, müssen Sie die 'toString'-Methode so übersteuern kann die Information korrekt anzeigen – 3kings