Dein Fortschritt:
0 / 0 Aufgaben
1
Übungsaufgaben
Dreißig Ü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.
A1
Der Held im Quelltext
AFB IDie Klasse Held eines Spiels speichert die Lebenspunkte (0 bis 100). Lies die Bestandteile aus dem Quelltext ab: Klicke nacheinander die gefragten Zeilen an.
Klicke die gesuchte Stelle an. Mit der Tastatur: Tab oder Pfeiltasten zum Wandern, Enter zum Auswählen.
Das Attribut leben ist private. Der Getter gibt es mit return leben; zurück. Der Setter beginnt mit public void setLeben(int w), prüft in der if-Zeile den Bereich 0 bis 100 und schreibt erst dann mit leben = w; in das Attribut.
Suche zuerst die Wörter private, return und void im Quelltext: Diese zeigen dir drei der gefragten Zeilen.
Die Prüfung ist die Zeile mit if und den beiden Vergleichen. Die Zuweisung steht in der Zeile direkt darunter im if-Block.
A2
Die Lampe nach dem Aufruf
AFB IIDie Lampe eines Schreibtischs wird von dieser Klasse gesteuert:
public class Lampe {
private int stufe;
public Lampe() {
stufe = 20;
}
public void setStufe(int stufe) {
if (stufe >= 0 && stufe <= 100) {
stufe = stufe;
}
}
public int getStufe() {
return stufe;
}
}Lampe l = new Lampe(); l.setStufe(80);
Untersuche das Programm: Welche Objektkarte zeigt den Zustand von l nach diesen beiden Zeilen?
Klicke die passende Karte an und prüfe dann. Mit der Tastatur: Tab zur Karte, Enter auswählen.
Der Parameter heißt wie das Attribut. In stufe = stufe; (ohne this) steht links und rechts der Parameter: Er wird nur sich selbst zugewiesen, das Attribut behält den Wert 20 aus dem Konstruktor. Karte B stimmt.
Verfolge zuerst den Konstruktor: Welchen Wert hat stufe, bevor setStufe aufgerufen wird?
Prüfe die Zeile in der if-Anweisung genau: Welche der beiden Variablen namens stufe steht links vom Gleichheitszeichen, und was passiert mit dem Attribut?
A3
Warum private?
AFB IDie Software einer Tierarztpraxis nutzt diese Klasse. Welche Aussagen zur Datenkapselung stimmen?
Tier
- - name: Zeichenkette
- - gewichtKg: Fließkommazahl
- c Tier(name: Zeichenkette, gewichtKg: Fließkommazahl)
- + getName(): Zeichenkette
- + getGewichtKg(): Fließkommazahl
- + setGewichtKg(gewichtKg: Fließkommazahl)
Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
private verbietet nur den direkten Zugriff von außen — über öffentliche Methoden wie den Getter darf der Wert sehr wohl nach außen. Getter und Setter sind unabhängig: Lässt man den Setter weg, ist das Attribut nur lesbar (hier: der Name). Mit Speicher oder Geschwindigkeit hat Kapselung nichts zu tun; es geht darum, dass das Objekt immer einen gültigen Zustand hat.
Ansatz: Unterscheide: direkter Zugriff auf das Attribut vs. Zugriff über eine öffentliche Methode.
Weiter: Was passiert, wenn es einen Getter, aber keinen Setter gibt? Und wo könnte man eine Prüfung wie „Gewicht > 0“ unterbringen?
