Aufgabe 1 [8 Punkte]
Erläutern Sie die folgenden Begriffe möglichst knapp und präzise.
a. Abstrakte Klasse
b. Anonyme Klasse
c. Finale Klasse
d. Interface
Aufgabe 2 [8 Punkte]
Das folgende Java-Programmfragment
Name n1 = new Name("Mehl"); Name n2 = new AbkName("Messerspitze", "Msp"); Name n3 = new AbkName("Tasse"); n1.schreib(); n2.schreib(); n3.schreib();
erzeugt die Ausgabe
Mehl Msp.: Messerspitze Tasse
Schreiben Sie die beiden Klassen Name und AbkName. Die Klassen sollen private Attribute und die für das obige Programm und die gezeigte Ausgabe notwendigen Konstruktoren und Methoden haben.
Aufgabe 3 [8 Punkte]
Schreiben Sie eine Klasse StoreFullException, die die Standardklasse Exception erweitert. StoreFullException braucht keine weitere Funktionalität anzubieten.
Schreiben Sie eine Klasse StringStore zur Speicherung von n Strings. StringStore hat
StringStore soll mit Hilfe eines Arrays von Strings realisiert werden. addString soll eine StoreFullException auslösen, wenn die Kapazität des Speichers erschöpft ist, d.h. wenn mehr als n Strings gespeichert werden sollen.
Schreiben Sie eine Methode static void main(String[] argv), die ein StringStore-Objekt zur Aufnahme aller Argumente der Kommandozeile erzeugt und diese Argumente dort speichert. Im Falle einer StoreFullException soll die Ausgabe ``StringStore full'' auf der Standardausgabe erzeugt werden.
Aufgabe 4 [8 Punkte]
Gegeben sind die beiden folgenden Interface-Definitionen:
interface Käuflich { double getPreis(); // in DM } interface Wiegbar { double getGewicht(); // in kg }
Schreiben Sie ein Interface Ware, das von diesen beiden Interfaces erbt und die String-wertige Methode getWarenName() fordert.
Schreiben Sie eine Methode static void printPreisListe(Ware[] w), die eine Liste der Waren im Array w mit Namen und Preis pro Kilogramm ausgibt.
Schreiben Sie ein Klasse Gemüse, deren Objekte man als Elemente des obigen Arrays vom Typ Ware verwenden könnte.
Aufgabe 5 [8 Punkte]
Schreiben Sie ein Java-Applet JaNein, das in seiner init()-Methode einen Knopf mit der Inschrift ``Ja'' erzeugt. Betätigung dieses Knopfes mit der Maus soll die Inschrift abwechselnd zwischen ``Ja'' und ``Nein'' hin- und herschalten. Verwenden Sie das Java1.1-Event-Modell mit einer inneren Klasse Wechsel zur Erzeugung eines Event-Listeners.
Aus der Java-Api-Dokumentation: