Dein Fortschritt:
0 / 0 Aufgaben
1
Stromzähler im Mehrfamilienhaus
AFB I–IIEine Hausverwaltung erfasst die Stromzähler eines Mehrfamilienhauses mit einer Java-Anwendung. Jeder Zähler hat eine Zählernummer und einen Zählerstand in kWh. Mit erhoehen wird ein positiver Verbrauch aufaddiert. Ein Auszubildender testet die Klasse mit dem abgebildeten Programmausschnitt. In der Variablen alt möchte er sich den alten Zählerstand „merken“, in z2 den Zähler „zum Ausprobieren“.
Material 1: Klasse Zaehler und Testausschnitt
Zaehler
- - nummer: Zeichenkette
- - stand: Ganzzahl
- c Zaehler(nummer: Zeichenkette, stand: Ganzzahl)
- + getNummer(): Zeichenkette
- + getStand(): Ganzzahl
- + erhoehen(kwh: Ganzzahl)
int alt = 4200;
Zaehler z1 = new Zaehler("Z-01", 4200);
Zaehler z2 = z1;
Zaehler z3 = new Zaehler("Z-01", 4200);
int neu = alt;
neu = neu + 150;
z2.erhoehen(150);
z3.erhoehen(30);
erhoehen addiert kwh zum Stand, falls kwh > 0 gilt.- Geben Sie nach Ausführung des Ausschnitts die Werte von
alt,neu,z1.getStand()undz3.getStand()sowie die Ergebnisse der Vergleichez1 == z2undz1 == z3an. - Stellen Sie den Speicherzustand nach Ausführung des Ausschnitts dar: alle fünf Variablen mit ihrem Inhalt und alle erzeugten Objekte als Objektkarten.
- Erklären Sie, warum das „Merken“ mit
altgelingt, das „Ausprobieren“ mitz2aber den Zählerz1verändert, obwohl in beiden Fällen nur eine Zuweisung mit=verwendet wird.
Hinweise
Hinweis zu Aufgabe a)
Zähle, wie oft im Ausschnitt
new steht – so viele Zähler-Objekte gibt es. Verfolge dann, welche Variable auf welches Objekt verweist.Angeben heißt: nur die Werte, keine Begründung.Hinweis zu Aufgabe b)
Trenne zwei Bereiche: die Variablen (Name und Inhalt) und die Objekte (Objektkarten). Bei Objektvariablen steht als Inhalt ein Verweis auf eine Karte, kein Zahlenwert.
Hinweis zu Aufgabe c)
Was genau steht in
alt, was steht in z1? Die Zuweisung kopiert immer den Inhalt der Variablen – überlege, was dieser Inhalt jeweils ist.