Array von Klassen

Hallo,

ich hab da ein Problem mit einem Array.

Ich soll ein Programm das Schüler anlegt um eine weitere Klasse erweitern. Diese Klasse enthält ein Array vom Typ Schüler-Klasse.

Hier mal die genaue Aufgabenstellung:

Erweitern Sie das Programm um eine neue Klasse. Diese Klasse hat als Instanzvariable ein Array vom Typ Schüler-Klasse mit 5 Elementen. Implementieren Sie den Zuweisungskonstruktor. Erzeugen Sie ein Objekt von dieser Klasse in der main-Methode.

Nach meiner Interpretation der Aufgabenstellung habe ich nachstehenden Code geschrieben, allerdings wenn ich nun das Array ausgebe bekomme ich als Ausgabe nur die Adressen der einzelnen Objekte.
Also, entweder ich liege mit meiner Interpretation völligst daneben, was ich glaube oder die Aufgabenstellung macht kein sinn.

public class AIKler
{
    private String Vorname;
    private String Nachname;
    private int Alter;
    private boolean FHR;

    public AIKler()
    {
        Vorname = "Maik";
        Nachname = "Mueller";
        Alter = 19;
        FHR = true;
    }

    public AIKler(String vn, String nn, int age, boolean fhr)
    {
        Vorname = vn;
        Nachname = nn;
        Alter = age;
        FHR = fhr;
    }

    public void print_AIKler()
    {
        System.out.println("Nachname: "+Nachname+ "
Vorname: "+Vorname+ "
Alter: "+Alter+ "
FHR: "+FHR+ "
");
    }

    public static void main(String[] args)
    {
        AIKler s = new AIKler();
        AIKler t = new AIKler("Tobias", "Maier", 23, false);

        s.print_AIKler();
        t.print_AIKler();
        
        AIKler_Klasse aikArr = new AIKler_Klasse("Harald", "Huhn", 20, true);
        aikArr.printList();
    }
}

class AIKler_Klasse
{
    private AIKler[] aiklerArray = new AIKler[5];

    public AIKler_Klasse(String vn, String nn, int age, boolean fhr)
    {
        aiklerArray[0] = new AIKler(vn, nn, age, fhr);
        aiklerArray[1] = new AIKler(vn, nn, age, fhr);
        aiklerArray[2] = new AIKler(vn, nn, age, fhr);
        aiklerArray[3] = new AIKler(vn, nn, age, fhr);
        aiklerArray[4] = new AIKler(vn, nn, age, fhr);
    }

    public void printList()
    {
        for( int i = 0; i < aiklerArray.length; i++)
        {
            System.out.println(aiklerArray**);
        }
    }
}
 public void printList(){
        for( int i = 0; i < aiklerArray.length; i++){
            aiklerArray**.print_AIKler();
        }
    }

oder

 public void printList(){        
      System.out.println(Arrays.toString(aiklerArray));       
 }

Edit:

Für die zweite Variante müsstest du toString implementieren, etwa:

 public String toString(){
        return "AIKler[ Nachname: "+Nachname+ " Vorname: "+Vorname+ " Alter: "+Alter+ " FHR: "+FHR+ " ]");
    }

Die Aufgabe scheint einfach ungenau zu sein. Denn wenn man das Array durchläuft will man ja in irgendeiner Art und Weise wissen welche Schüler dadrin stehen. Da brauchst dann halt ne Methode. Aber das einfache speichern von 5 Schülern hast du ja gebaut, also die Aufgabe mEn erfüllt.

::crazy

aiklerArray**.print_AIKler();

Hatte ich schon geschrieben, habe nur vergessen das System.out.println drumherum weg zu nehmen.
Man sollte zu dieser späten Stunde keine Logischen Aufgaben machen.

Ich Danke Euch für die schnelle Hilfe und das zu dieser Stunde.

OT: Du solltest darauf achten das du variablen Namen klein schreibst (camelCase)

Danke für den Hinweis :slight_smile:

Ich würde den Variablen noch aussagekräftigere Namen geben.

Grüße