Home > Informatik > Stufe EF > 9. zweidimensionale Arrays > 9.1 Notenliste

9.1.1 Ein Array mit Array-Objekten

Implementation 1 - Implementation 2 - Übungen

Ein Array aus Objekten der Klasse SNoten

Hier eine mögliche Implementation der Klasse KNoten. Die Klasse KNoten verwaltet die Noten aller Schüler(innen) einer Klasse. Die einzige Instanzvariable dieser Klasse ist ein Array notenliste[] aus 30 Elementen der Klasse SNoten, also der 10 Noten eines Schülers.

public class KNoten
{
    SNoten[] notenliste = new SNoten[30];
    
    public KNoten()
    {
        for (int s = 0; s < 30; s++)
           notenliste[s] = new SNoten();
    }
    
    public void erzeugen()
    {
        for (int s = 0; s < 30; s++)
           notenliste[s].erzeugen();
    }
    
    public void ausgeben()
    {
        for (int s = 0; s < 30; s++)
        {
            System.out.printf("Noten fuer Schueler Nr. %2d: ", s + 1);
            notenliste[s].ausgeben();
        }
    }
}

Im Konstruktor wird der Array notenliste[] initialisiert, die Methode erzeugen() ruft für jedes der 30 Arrayelemente die Methode SNoten.erzeugen() auf, und die Methode ausgeben() ruft für alle Arrayelemente die ausgeben()-Methode der Klasse SNoten auf. Der printf()-Befehl in der ausgeben()-Methode stellt sicher, dass die Schülernummern rechtsbündig untereinander ausgegeben werden.

Anschaulich kann man sich das Array KNoten wie eine Tabelle vorstellen:

Graphische Darstellung der Klasse KNoten
Autor: Ulrich Helmich 2021, Lizenz: Public domain

Aufgabe

Wie müsste man vorgehen, wenn man beispielsweise die 6. Note des 12. Schülers aus der Notentabelle "extrahieren" wollte?

Der entsprechende Aufruf wäre dann folgender.

System.out.print("Note 6 von Schueler Nr. 12 : ");
System.out.println(notenliste[11].noten[5]);

Zunächst muss das richtige notenliste[]-Element gewählt werden. Für den Schüler oder die Schülerin mit der Nr. 12 ist das notenliste[11].

Die sechste Note von notenliste[11]hat dann den Index 5, also müssen wir schreiben: notenliste[11].noten[5].

Seitenanfang -
Zurück zur Hauptseite 9.1 Notenliste ...
Weiter mit Implementation 2 ...