06.02.2015 Aufrufe

Lösungen - Lehr- und Forschungsgebiet Informatik 2

Lösungen - Lehr- und Forschungsgebiet Informatik 2

Lösungen - Lehr- und Forschungsgebiet Informatik 2

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

• Zu OUT 3:<br />

Es wird a = a.toB(); ausgeführt, also wird die Methode toB() aus der<br />

Klasse A auf dem Objekt a aufgerufen. ⇒<br />

– B b = new B(x); ⇒ Aufruf des Konstruktors von B mit Argument 2<br />

⇒<br />

∗ super(-2) ⇒ x = x - 2 = 0<br />

∗ y += x ⇒ y = y + x = 3 + 0 = 3<br />

∗ x += z ⇒ x = x + 2 = 2<br />

– b.y = (int)this.y; ⇒ b.y = (int) a.y = (int) -2.0 = -2<br />

Hier wird auf der rechten Seite der Zuweisung das Attribut y aus der<br />

Klasse A betrachtet. Der double-Wert -2.0 wird explizit nach int<br />

konvertiert <strong>und</strong> als -2 dem Attribut B.y des Objektes zugewiesen,<br />

das in toB() mit b bezeichnet ist.<br />

Die folgende Anweisung return this; <strong>und</strong> die Zuweisung der Rückgabewertes<br />

von a.toB() an a bewirken, dass a nun auf in toB() erzeugte<br />

Objekt zeigt, also a.y = -2<br />

• Zu OUT 4:<br />

Es werden folgende Anweisungen ausgeführt:<br />

– B b = new B(-3); ⇒<br />

∗ super(-2) ⇒ x = x - 2 = 0<br />

∗ y += x ⇒ y = y + x = 3 + 0 = 3<br />

∗ x += z ⇒ x = x + (-3) = -3<br />

– a = b ⇒ a zeigt nun auf b.<br />

b) Das Programm beinhaltet folgende Compilierfehler:<br />

• B r = new A();<br />

Einem Objekt der UnterklasseB kann kein Objekt einer seiner Oberklassen<br />

(hier: A) zugewiesen werden.<br />

• int i = s.y;<br />

Der Wert des Attributes s.y hat den Typ double <strong>und</strong> kann ohne explizite<br />

Konvertierung nicht einer int-Variablen zugewiesen werden.<br />

• Dem implizit angelegten Konstruktor C() fehlt der implizit aufgerufene<br />

Konstruktor B() der Oberklasse.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!