MINT üben

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.

Merke

Reihung von Objekten: Paket[] lager = new Paket[6]; legt sechs Plätze für Referenzen an, zunächst alle null.

Objekte erzeugen: jedes einzeln mit new, z. B. lager[0] = new Paket(…);.

Zugriff: lager[i].getGewicht() — erst das Fach, dann die Methode; ein Aufruf auf null bricht ab.

Länge: lager.length zählt die Plätze, nicht die Pakete.

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 gewohnt — 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.

Durchlauf: for (int i = 0; i < lager.length; i++) über alle Indizes.

Auswerten: Summe, Anzahl und Maximum wie bei Zahlenreihungen, aber über den Getter des Objekts.

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