Dein Fortschritt:
0 / 0 Aufgaben
1
Lokwechsel im Bahnhof
AFB I–IIEin Eisenbahnunternehmen plant den Einsatz seiner Lokomotiven mit einer Software. Ein Zug wird zunächst ohne Lok bereitgestellt und bekommt mit ankuppeln eine Lok zugeordnet. Die Höchstgeschwindigkeit eines Zuges richtet sich nach seiner Lok. Material 1 zeigt das Klassendiagramm, den Quelltext der Klasse Zug und eine Anweisungsfolge aus dem Betrieb.
Material 1: Zug und Lok
Zug
- - nummer: Zeichenkette
- - lok: Lok
- c Zug(nummer: Zeichenkette)
- + ankuppeln(lok: Lok)
- + getLok(): Lok
- + getHoechsttempo(): Ganzzahl
kennt0..1
Lok
- - baureihe: Zeichenkette
- - hoechstgeschwindigkeit: Ganzzahl
- c Lok(baureihe: Zeichenkette, hoechstgeschwindigkeit: Ganzzahl)
- + getBaureihe(): Zeichenkette
- + getHoechstgeschwindigkeit(): Ganzzahl
public class Zug {
private String nummer;
private Lok lok;
public Zug(String nummer) {
this.nummer = nummer;
lok = null;
}
public void ankuppeln(Lok lok) {
this.lok = lok;
}
public Lok getLok() {
return lok;
}
public int getHoechsttempo() {
return lok.getHoechstgeschwindigkeit();
}
}
Lok l1 = new Lok("BR 146", 160);
Lok l2 = new Lok("BR 218", 140);
Zug re = new Zug("RE 7");
Zug rb = new Zug("RB 42");
Zug ic = new Zug("IC 2036");
re.ankuppeln(l1);
rb.ankuppeln(l1);
re.ankuppeln(l2);
- Beschreiben Sie, wie die Beziehung „Zug kennt Lok“ im Quelltext umgesetzt ist, wie sie hergestellt wird und wie
getHoechsttemposie nutzt. - Zeichnen Sie das Objektdiagramm nach Ausführung der Anweisungsfolge und geben Sie an, welche Werte
re.getHoechsttempo()undrb.getHoechsttempo()nun liefern. - Begründen Sie, dass der Aufruf
ic.getHoechsttempo()zum Programmabbruch führt, und geben Sie eine abgesicherte Fassung der Methode an, die in diesem Fall 0 liefert.
Hinweise
Hinweis zu Aufgabe a)
Achte auf drei Stellen: den Datentyp des Attributs
lok, die Methode ankuppeln und den Punkt in lok.getHoechstgeschwindigkeit().Beschreiben heißt: in Fachsprache wiedergeben, was da steht – Begriffe wie Attribut, Referenz, Parameter, Methodenaufruf verwenden.Hinweis zu Aufgabe b)
Fünf
new – fünf Objektkarten. Arbeite die drei ankuppeln-Aufrufe der Reihe nach ab; ein späterer Aufruf überschreibt die frühere Referenz.Hinweis zu Aufgabe c)
Welchen Wert hat das Attribut
lok bei ic? Was passiert, wenn man über diesen Wert eine Methode aufruft?