MINT lernen

Reihungen von Objekten

Ein Regal mit sechs Fächern ist noch kein Lager voller Pakete — was steht in einer Reihung, bevor man etwas hineinlegt?

1

Plätze statt Objekte

  • Reihung anlegen:Paket[] lager = new Paket[6]; — sechs Plätze für Referenzen, alle zunächst null.
  • Objekte erzeugen:jedes Paket einzeln: lager[0] = new Paket(3.5, "Hannover");
  • Zugriff:lager[i].getGewicht() — erst das Fach, dann die Methode des Objekts darin.
  • Länge:lager.length zählt die Plätze, nicht die Pakete.

Setze den Messzeiger i auf ein Fach (ziehen oder ←/→) und lies ab, was lager[i].getGewicht() liefert. „Messwert notieren“ trägt den Wert ins Protokoll ein, „Schleife ausführen“ misst alle Fächer mit null-Prüfung.

Messzeiger im Paketlager

ilager[i]lager[i].getGewicht()Summe bisher
Noch keine Messung.

Halte fest: lager[i] ist nur eine Referenz — auf ein Paket oder auf null. Ein Methodenaufruf auf null bricht ab; deshalb prüft die Schleife jedes Fach, bevor sie misst.

2

Alle Objekte durchlaufen

  • Schleife:for (int i = 0; i < lager.length; i++) — über alle Indizes.
  • null-Prüfung:if (lager[i] != null) vor jedem Methodenaufruf.
  • Auswerten:Summe, Anzahl, Maximum wie in Kapitel 2 — nur über den Getter des Objekts.
public double gesamtgewicht() {
    double summe = 0;
    for (int i = 0; i < lager.length; i++) {
        if (lager[i] != null) {
            summe = summe + lager[i].getGewicht();
        }
    }
    return summe;
}
Merke

Reihung von Objekten: new Typ[n] erzeugt n leere Plätze (null). Jedes Objekt braucht ein eigenes new, und vor jedem Methodenaufruf steht lager[i] != null.

3

Allgemeine Hinweise

Reihung ist nicht Objekt

Nach new Paket[6] gibt es kein einziges Paket. Wer sofort lager[0].getGewicht() aufruft, bekommt eine NullPointerException.

Grenze der Schleife

Die Indizes laufen von 0 bis lager.length − 1. Mit i <= lager.length greift die Schleife ins Leere.

Reihenfolge der Bedingung

Bei lager[i] != null && lager[i].getGewicht() > 5 steht die Prüfung vorn — ist sie falsch, wird der Rest gar nicht mehr ausgewertet.

Videos