Plätze statt Objekte
- Reihung anlegen:
Paket[] lager = new Paket[6];— sechs Plätze für Referenzen, alle zunächstnull. - 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.lengthzä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.
| i | lager[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.
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;
}
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.
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.
