P. Pfahler, E. Stümpel

Programmieren in Java, Winter 1997/98

5. Übungsblatt, 24.11.1997

Abgabe: 1.12.1997, 18h an elfriede@uni-paderborn.de, Subject "Blatt5"


Aufgabe 7 (Dynamische Bindung 1)

Vom folgenden Java-Programm betrachten wir 2 Versionen

class ober
{ // private
  void x()
  { System.out.println("ober x");
  }
  void y()
  { x();
  }
}

class unter extends ober
{ void x()
  { System.out.println("unter x");
  }
}

public class privatetest
{
  public static void main(String argv[])
  { ober obj = new unter();
    obj.y();
  }
}
Welche Ausgaben erzeugen Version 1 und Version 2? Geben Sie eine genaue Erklärung für eventuell auftretende Unterschiede.

Aufgabe 8 (Dynamische Bindung 2)

Dynamische Bindung kann in Java-Programmen dazu führen, daß in Oberklassenkonstruktoren Methoden der Unterklasse aufgerufen werden. Diese Methoden operieren somit auf Objekten, deren Unterklassen-Konstruktion noch nicht abgeschlossen ist.

Demonstrieren Sie diesen Fall an einem kleinen (!) Beispiel und erläutern Sie dessen Ablauf.

Aufgabe 9 (Dynamische Bindung 3)

Hier ist eines der wenigen wirklich nützlichen Java Applets:

Der Autor ist Karl Hörnell aus Uppsala in Schweden.

Hier ist der zugehörige Java Quell-Code . Die Animation der Tiere wird im wesentlichen von den Methoden

gesteuert. Der Applet-Code enthält allerdings keine Aufrufe dieser Methoden.

Benutzen Sie die API-Dokumentiation von Sun oder ihre lokale Kopie davon, um herauszufinden, wer diese Methoden aufruft und warum. Fassen Sie das Ergebnis Ihrer Recherchen kurz zusammen.