Aufgabe 1.

public class Hauptprogramm {

public static void main(String[] args) {

Kreis k1 = new Kreis(); k1.zeichnen(); k1.bemalen();

Kreis k2 = new Kreis(); k2.zeichnen(); k2.bemalen(); k2.bemalen();

}

}

Aufgabe 2:

:

Aufgabe 3. A B C B B C B C C

Begründung: der Parameter x der lokalen Prozedur p ist polymorph

Aufgabe 4

(X) falsch Es gibt Java-Programme, die auch ohne einen Interpreter ausgeführt werden können.

Grund: Bytecode kann nicht von der Hardware ausgeführt werden

(X) richtig Auch ein Konstruktor kann Ausnahmen auslösen.

Grund: z.B. mit dem Aufruf einer Methode (z.B. fuellen), die eine Ausnahme auslöst

(X) richtig Von einer Schnittstelle können – im Gegensatz zu einer Klasse – keine Objekte erzeugt werden.

Grund: Sie enthält keine Daten und keine Implementierungen von Methoden

(X) richtig Klassen können auf die Konsole (ins DOS-Fenster) Text ausgeben.

Grund: mit System.out.println(String);

(X) richtig Menüs sind geeignet, die Reihenfolge der Ausführung im Voraus nicht festlegen zu müssen.

Grund: Reihenfolge wird interaktiv zur Laufzeit festgelegt

(X) richtig Eine Zuweisung verändert keine Datenobjekte, nur eine Referenz.

Grund: Nur die Referenz auf der linken Seite wird verändert

(X) richtig Es gibt Pakete, die keine Methoden enthalten, nur Klassen.

Grund: Alle Pakete enthalten nur Klassen, keine Methoden

(X) falsch Jede Methode kann auf der rechten Seite einer Zuweisung aufgerufen werden.

Grund: nur die nicht-void-Methoden

Aufgabe 5.

protected void zweimalFuellen() { ...

public class SechsmalFuellen extends FuenfmalFuellen {

public void start() {

zweimalFuellen(); zweimalFuellen(); zweimalFuellen();

}

}

 

Aufgabe 6. Bei jedem Methodenaufruf wird ein neuer Eintrag auf dem Stapel erzeugt. Hier werden die Parameter, die lokalen Referenzen (Variablen) und die Rücksprungadresse auf dem Stapel gespeichert. Bei einem rekursiven Aufruf entstehen mehrere Exemplare derselben Variablen in unterschiedlichen Stapeleinträgen. Bei der Beendigung des Aufrufs wird der Stapeleintrag gelöscht. Es kann immer nur der oberste Eintrag gelöscht, d.h. der zuletzt aufgerufene Methode beendet werden. Die (von den Referenzen referierten) Objekte werden nicht auf dem Stapel, sondern auf der Halde gespeichert, d.h. sie können die Methode überleben, in der sie erzeugt wurden.