Aufgabe 1: Programmieren Sie eine fehlertolerante Klasse EimerUndKreis mit den (parameterlosen) Methoden fuellen und entleeren, ähnlich wie in der Übung 11. Beim Erzeugen eines Objekts soll ein leerer Eimer und ein leerer Kreis auf dem Bildschirm erscheinen; beim fuellen sollen beide blau, beim entleeren sollen beide leer (nicht unsichtbar!) werden. Sie brauchen dazu folgende (alle public) Methoden und Klassen:
class Eimer { void anzeigen(); void fuellen() throws VollAusnahme; void entleeren() throws LeerAusnahme; ... } class Kreis { void zeichnen(); void bemalen(Farbe farbe); void verstecken(); ... } class Farbe { Farbe BLAU; ... }
Aufgabe 2.: Programmieren Sie eine Funktion (mit 2 Parametern), die die Anzahl der Vorkommnisse eines gegebenen Zeichens in einer gegebenen Zeichenkette errechnet (z.B. in "abaa" ist die Anzahl der Vorkommnisse von 'a' ist 3, von 'b' ist 1, von 'c' ist 0). Sie brauchen dazu folgende Methoden der Klasse String:
int length(); // die Länge der Zeichenkette char charAt(int pos); // das Zeichen an der Position pos
Aufgabe 3: Programmieren Sie den Konstruktor eines Fensters mit Menü (ähnlich wie in der Übungsaufgabe 22), das zwei Spalten ("Erste" und "Zweite") sowie drei Menüpunkte ("Erste" und "Zweite" in der ersten Spalte, "Dritte" in der zweiten Spalte) enthält. Sie brauchen dazu folgende Klassen (alle haben einen Konstruktor mit einem String-Parameter) und Methoden aus dem Paket javax.swing:
class JFrame { public void setJMenueBar(JMenueBar menu); ... } class JMenuBar { public void add(JMenu menu); ... } class JMenu { public void add(JMenuItem menuItem); ... } class JMenuItem { ... }
Aufgabe 4: Zeichnen Sie das Objekdiagramm für die obige Aufgabe 3 (den Zustand nach dem Ablauf des Konstruktors). Verwenden Sie hierbei die Notation von der Vorlesung: Variable = Kästchen mit Namen (daneben, wenn bekannt) und Inhalt ( = Wert); Referenz = Pfeil aus der Referenz zum Objekt (oder X wenn null), Name der Methode neben dem Pfeil, wenn die Methode die (vermutete) Referenz beschreibt, Objekt = Wolke mit dem Namen der Klasse (daneben) und Inhalt (wenn bekannt oder vermutet).
Alternativ (nur wenn Aufgabe 3 = 0 Punkte): Zeichnen Sie das Objekdiagramm für die obige Aufgabe 1, nachdem in einer main-Methode zwei Referenzen und zwei Objekte vom Typ EimerUndKreis erzeugt wurden.
Aufgabe 5. (40 Punkte, 15 Min): Kreuzen Sie die richtigen Antworten an und geben Sie Ihre Begründung mit Stichworten (nicht länger als die Zeile) dazu. Ohne Begründung gilt Ihre Antwort als falsch.
( ) Richtig Der Ergebnistyp
einer Methode ist immer eine Klasse oder ein primitiver Typ.
( ) Falsch
Grund:
( ) Richtig Die Anzahl der
aktuellen Parameter in einem Methodenaufruf wird in der Klasse bestimmt,
( ) Falsch die den Rumpf der Funktion enthält.
Grund:
( ) Richtig Wenn
actionPerformed aus
ActionListener nicht
überschrieben wird, ist sie leer.
( ) Falsch
Grund:
( ) Richtig Lokale Objekte
(die in einem Methodenrumpf mit
new erzeugt werden)
werden
( ) Falsch auf dem Stapel gespeichert.
Grund:
( ) Richtig Ein Konstruktor
ist weder eine Prozedur, noch eine Funktion.
( ) Falsch
Grund:
( ) Richtig Alle Ausnahmen
(die mit throw
ausgeworfen werden) sind Unterklassen
( ) Falsch entweder der Klasse
Error, oder der Klasse
Exception.
Grund:
( ) Richtig Das
Klassendiagramm wird zur Laufzeit nicht verändert.
( ) Falsch
Grund:
( ) Richtig Der Operator
/= ist für alle artihmetische Typen definiert.
( ) Falsch
Grund:
Aufgabe 6: Schreiben Sie die 5 Schritte der Ausführung einer for-Schleife auf: for (①; ②; ③) ④
1. ________________________________________________________________________________________________
2. ________________________________________________________________________________________________
3. ________________________________________________________________________________________________
4. ________________________________________________________________________________________________
5. ________________________________________________________________________________________________
Wann können Sie eine Zählschleife verwenden, wann müssen Sie eine bedingungsgesteuerte Schleife benutzen? _________