MINT üben

Klassen und Objekte

Dreißig Übungen zu Klassen und Objekten — von new über Verweise bis zum Aufruf von Methoden.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Übungen in gemischter Reihenfolge — du klickst, ziehst, ordnest, rechnest und knobelst. Jede Übung gibt dir sofort eine Rückmeldung, und zu jeder Aufgabe gibt es zwei gestufte Tipps: Der erste zeigt die Richtung, der zweite den entscheidenden Schritt. Die Chips zeigen das Anforderungsniveau: AFB I heißt wiedergeben und direkt anwenden, AFB II selbst entscheiden und verknüpfen, AFB III begründen, beurteilen oder eine Falle durchschauen. Aufgaben mit dem Chip Mix verbinden Wissen aus früheren Unterkapiteln, bei Trick steckt eine Falle drin. Fährst du über ein unterstrichenes Arbeitswort, siehst du, was es genau von dir verlangt.

A1
Bauplan oder Exemplar?
AFB II

Ordne jede Aussage ein: Gehört sie zum Bauplan (der Klasse Auto) oder zu einem einzelnen Exemplar (einem Objekt)?

Schiebe die oberste Karte auf den passenden Stapel: ziehen, einen der beiden Stapel-Knöpfe drücken oder auf der Karte ←/→. Eine abgelegte Karte holst du mit Klick oder Enter zurück. „Prüfen“ schickt falsch abgelegte Karten mit einem Hinweis zurück in den Stapel.
Das Attribut farbe hat den Typ String.
Bei meinAuto ist farbe gleich „rot“.
Die Methode hupen() gibt es.
deinAuto steht auf 40 km/h.
Der Konstruktor heißt Auto und braucht einen String.
Dein Auto und mein Auto haben unterschiedliche Kennzeichen.
Die Klasse legt fest, welche Attribute, Methoden und Konstruktoren es gibt. Die konkreten Werte, etwa Farbe, Geschwindigkeit und Kennzeichen, gehören zum einzelnen Objekt.
Ansatz: Frage dich: Steht das in der Klasse oder ändert es sich von Objekt zu Objekt?
Weiter: Typen, Namen und Köpfe stehen im Bauplan; konkrete Werte hat das Exemplar.
A2
Das Zählwerk der Kasse
AFB IIMix

Weise nach, dass a.getStand() am Ende 90 liefert: Ordne jeder Zeile der Herleitung die passende Begründung zu.

Zaehlwerk a = new Zaehlwerk();   // stand beginnt bei 0
Zaehlwerk b = a;
a.erhoehen(40);
b.erhoehen(50);
Ordne jeder Zeile der Herleitung die passende Begründung zu: Karte anklicken, dann das Feld neben der Zeile (oder Karte direkt auf das Feld ziehen). Mit der Tastatur: Tab zur Karte, Enter, dann Tab zum Feld und Enter. Ein Klick auf ein belegtes Feld legt die Karte zurück. Nicht alle Karten werden gebraucht.

Zu zeigen: a.getStand() liefert 90.

  1. new erzeugt genau ein Zaehlwerk mit stand 0
  2. Zaehlwerk b = a; lässt b auf dasselbe Objekt zeigen
  3. a.erhoehen(40) setzt stand auf 40
  4. b.erhoehen(50) ändert dasselbe Objekt: stand wird 90
  5. a.getStand() liefert deshalb 90
Es gibt nur ein Objekt. Beide Variablen verweisen darauf, also addieren beide Aufrufe auf denselben Stand: 0 + 40 + 50 = 90.
Ansatz: Gehe die Zeilen in der Reihenfolge durch, in der sie ablaufen.
Weiter: Frage: Wie viele Objekte gibt es, und auf welches zeigt b?
A3
Bücher vergleichen
AFB I

Bestimme für jede Zeile, wie die beiden Angaben nach dem Programm zueinander stehen, indem du das passende Zeichen setzt. Die Methode lesen(int n) erhöht das Attribut gelesen um n; es beginnt bei 0.

Buch a = new Buch("Momo", 240);
Buch b = new Buch("Emil", 180);
Buch c = a;
c.lesen(50);
Setze zwischen die beiden Angaben das passende Zeichen: Klick schaltet ? → < → = → > weiter. Mit der Tastatur: Tab zum Feld, dann <, = oder >.
gelesen von agelesen von c
gelesen von bgelesen von a
Anzahl der ObjekteAnzahl der Variablen
seiten von aseiten von b
Anzahl der new-AufrufeAnzahl der Objekte
c zeigt auf dasselbe Objekt wie a: 50 und 50. b wurde nicht verändert: 0 und 50. Es gibt zwei Objekte, aber drei Variablen. Die Seitenzahlen sind 240 und 180. Jedes Objekt entsteht durch genau einen new-Aufruf: 2 und 2.
Ansatz: Finde heraus, auf welches Objekt jede Variable zeigt.
Weiter: Die Zeile c.lesen(50); ändert das Objekt, auf das c zeigt, und damit auch a.