Klausur PR11 im SS'00

Aufgabe 1: Gegeben ist die Spezifikation der Datenbehälterklasse Anschluss, um Telefonanrufe zu verwalten:

public class Anschluss {
	public void anrufen() throws BelegtAusn;
	public void auflegen();
	public boolean belegt();
	public int einheit();
}

Schreiben Sie nun eine (nicht-tolerante) Datenbehälterklasse ISDNAnschluss mit denselben vier Methoden, die aber zwei Anschluss-Objekte gleichzeitig bedienen. Ein ISDN-Anschluss meldet dann „belegt“, wenn beide Leitungen belegt sind; daher können Sie anrufen, wenn eine der Leitungen frei ist. Die Anzahl der vertelefonierten Einheiten eines ISDN-Anschlusses ist die Summe der Einheiten .


Aufgabe 2. Schreiben Sie ein Hauptprogramm (aus der vorherigen Aufgabe 1) und einer Prozedur mit einem ISDNAnschluss-Parameter; testen Sie darin alle Funktionalitäten der Klasse ISDNAnschluss


Aufgabe 3.: Zeichnen Sie die Datenstruktur eines Programms mit zwei Knöpfen und einem gemeinsamen Lauscher (alle Objekte und alle Referenzen, die darauf zeigen). Schreiben Sie zu den Referenzen ihren Namen, zu den Objekten die Namen ihre Klassen (u.U. ihrer Oberklassen) hin.

Aufgabe 4.: Kreuzen Sie die richtigen Antworten an und geben Sie Ihre Begründung mit Stich­worten dazu. Ohne Begründung gilt Ihre Antwort als falsch.


Aufgabe 5: Implementieren Sie die folgende Schnittstelle als eine Hüllenklasse für boolean mit einem parametrisierten Konstruktor:

interface Log {
	public void konjunktion(final Log wert); // logisches 'und', ähnlich wie &=
	public void disjunktion(final Log wert); // logisches 'oder', ähnlich wie |=
	public void ausgeben(); // auf der Konsole
}