Übungsaufgaben
Zehn Übungen zum Klicken, Ziehen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung; wenn du hängst, helfen dir die gestuften Tipps.
Ein Verleih für E-Scooter hat seine Klasse so entworfen. Welche Aussagen kannst du direkt aus der Klassenkarte ablesen?
- - id: Zeichenkette
- - akku: Ganzzahl
- - gesperrt: Wahrheitswert
- - kmStand: Fließkommazahl
- c EScooter(id: Zeichenkette)
- + entsperren(code: Ganzzahl): Wahrheitswert
- + fahren(km: Fließkommazahl)
- + getAkku(): Ganzzahl
- + laden()
fahren(km: Fließkommazahl) hat keinen — Fließkommazahl ist der Typ des Parameters km. Das Minus vor akku bedeutet privat: kein direkter Zugriff von außen. Und was „man gern wüsste“, zählt nicht: laden() hat laut Karte keine Rückgabe.Beschreibe die Klassenkarte eines Handyvertrags in Worten — ein Wort bleibt übrig.
- - rufnummer: Zeichenkette
- - volumenMB: Fließkommazahl
- - verbrauchtMB: Fließkommazahl
- c Handyvertrag(rufnummer: Zeichenkette, volumenMB: Fließkommazahl)
- + surfen(mb: Fließkommazahl)
- + getRestvolumen(): Fließkommazahl
Das Minuszeichen vor rufnummer bedeutet, dass das Attribut ist. Die Zeile, die mit c beginnt, beschreibt den . In surfen(mb: Fließkommazahl) ist mb ein . getRestvolumen() liefert einen vom Typ Fließkommazahl. surfen ist ein , weil es den Zustand ändert und nichts zurückgibt.
Die Klasse Aquarium einer Zoohandlung hat diese Einträge im unteren Feld. Sortiere sie.
anzahlFische() als Auftrag einsortieren, weil der Name nicht mit get beginnt. Er liefert aber eine Ganzzahl, ist also eine Anfrage. Der Konstruktor ist an dem vorangestellten c zu erkennen.Die Klasse Ticket eines Konzertveranstalters. Verbinde jede Zeile der Klassenkarte mit ihrer Bedeutung.
entwertet ist ein Attribut (Minus, kein Klammerpaar), istGueltig() eine Anfrage (Plus, Klammern, Rückgabetyp). Trick: Klammern ( ) gibt es nur bei Konstruktor und Methoden — Attribute haben nie welche.Die Stadtwerke haben ihr Parkhaus so modelliert. Wie viele Methoden (ohne Konstruktor) liefern einen Rückgabewert?
- - name: Zeichenkette
- - plaetze: Ganzzahl
- - belegt: Ganzzahl
- - preisProStunde: Fließkommazahl
- c Parkhaus(name: Zeichenkette, plaetze: Ganzzahl)
- + einfahren(): Wahrheitswert
- + ausfahren()
- + getFreiePlaetze(): Ganzzahl
- + istVoll(): Wahrheitswert
- + setPreisProStunde(preis: Fließkommazahl)
- + berechneGebuehr(minuten: Ganzzahl): Fließkommazahl
einfahren, getFreiePlaetze, istVoll und berechneGebuehr. Häufiger Fehler: nur 3 zählen, weil einfahren nach einem Auftrag klingt. Es ändert zwar den Zustand (ein Platz mehr belegt), meldet aber zusätzlich mit einem Wahrheitswert zurück, ob die Schranke aufging. Maßgeblich ist nur, was hinter der Klammer steht — und der Konstruktor zählt nie mit.Du darfst nur die öffentlichen Methoden der Klasse Quiz benutzen. Bring die Schritte eines Algorithmus (wie in Kapitel 1), der ein ganzes Quiz spielt, in die richtige Reihenfolge.
- - fragen: Reihung vom Typ Zeichenkette
- - punkte: Ganzzahl
- - aktuelleFrage: Ganzzahl
- c Quiz(anzahl: Ganzzahl)
- + naechsteFrage(): Zeichenkette
- + antworten(antwort: Zeichenkette): Wahrheitswert
- + istBeendet(): Wahrheitswert
- + getPunkte(): Ganzzahl
Fünf Behauptungen zur Klassenkarte eines Stromzählers:
- - nummer: Zeichenkette
- - stand: Fließkommazahl
- - tarif: Fließkommazahl
- c Stromzaehler(nummer: Zeichenkette, tarif: Fließkommazahl)
- + ablesen(): Fließkommazahl
- + verbrauchen(kWh: Fließkommazahl)
- + kostenSeit(alterStand: Fließkommazahl): Fließkommazahl
- + setTarif(tarif: Fließkommazahl)
Eine Kalender-App nutzt diese Klasse. Werte die Karte Schritt für Schritt aus.
- - titel: Zeichenkette
- - ort: Zeichenkette
- - tag: Ganzzahl
- - monat: Ganzzahl
- - startStunde: Ganzzahl
- - dauerMinuten: Ganzzahl
- - erinnerung: Wahrheitswert
- c Termin(titel: Zeichenkette, tag: Ganzzahl, monat: Ganzzahl)
- + verschieben(tage: Ganzzahl)
- + getTitel(): Zeichenkette
- + getEndeMinuten(): Ganzzahl
- + istGanztaegig(): Wahrheitswert
- + erinnerungSetzen(an: Wahrheitswert)
- + ueberschneidetSich(start: Ganzzahl, dauer: Ganzzahl, tag: Ganzzahl): Wahrheitswert
- Wie viele Attribute haben den Datentyp Zeichenkette?
- Wie viele Attribute werden nicht über einen Konstruktor-Parameter gesetzt?
- Wie viele Methoden sind Anfragen?
- Wie viele Parameter haben alle Methoden (ohne Konstruktor) zusammen?
Eine Mitschülerin hat die Klassenkarte eines Fitnesstrackers in der Notation der Ergänzenden Hinweise gezeichnet. Drei Zeilen verstoßen gegen die Notation oder die Konventionen — finde sie.
Zeilen aus der Klassenkarte Schachfigur. Wie viele Werte musst du angeben, wenn du diesen Eintrag aufrufst bzw. benutzt? Schätze jede Zeile ein — Vorsicht, nicht jede Zeile ist, wonach sie aussieht.
+ ziehen(spalte: Zeichen, zeile: Ganzzahl): Wahrheitswert
c Schachfigur(farbe: Zeichenkette, art: Zeichenkette, spalte: Zeichen, zeile: Ganzzahl)
+ umwandeln(neueArt: Zeichenkette)
- zeile: Ganzzahl
+ bewerten(eigene: Ganzzahl, gegner: Ganzzahl, zug: Ganzzahl): Ganzzahl
- zeile: Ganzzahl ist gar keine Methode, sondern ein privates Attribut; man ruft es nicht auf und übergibt nichts.