Aufgabe 1: Schreiben Sie Dokumentationskommentare (auf Deutsch) für die Klasse IntIO mit den Methoden readInt und writeInt, ähnlich wie in der Übung 15 (datei=new PrintStream(new FileOutputStream("Log.txt"));):
public class IntIO { ... public int readInt() throws IOException, NumberFormatException { return Integer.parseInt(tastatur.readLine()); } public void writeInt(int zahl) throws IOException { System.out.print(zahl); datei.print(zahl); } }
Aufgabe 2.: Schreiben Sie eine Methode, die das größte Objekt in einer Reihung aus Objekten liefert, deren Klasse die Schnittstelle Comparable implementiert. Die Schnittstelle enthält eine Methode public int compareTo(Object o), die -1, 0 oder +1 liefert, je nach dem, ob das Zielobjekt kleiner, gleich oder größer ist als das Parameterobjekt. Vergessen Sie nicht den speziellen Fall, wenn die Reihung kein Objekt enthält.
Aufgabe 3: Schreiben Sie zu den letzten 3 Zuweisungen im untenstehenden Programm eine geeignete Typkonvertierung so, dass das Programm übersetztbar wird, sowie als Kommentar die Art der Kompatibilität: „aufwärts“, „abwärts erfolgreich“, „abwärts erfolglos“ (d.h. mit ClassCastException). (Tipp: zeichnen!)
class Oben { } class Mitte extends Oben { } class Unten extends Mitte { } ... Oben ref1 = new Mitte(); Mitte ref2 = new Unten();
Oben oben = (_________) ref1; // __________________________________________
Unten unten1 = (_________) ref2; // __________________________________________
Unten unten2 = (_________) ref1; // __________________________________________
Aufgabe 4: Zeichnen Sie das Objekdiagramm der Methode strToInt aus der Übungsaufgabe 19/1. Verwenden Sie hierbei die Notation von der Vorlesung: Variable = Kästchen mit Namen (daneben) und Inhalt ( = Wert); Referenz = Pfeil aus der Referenz zum Objekt (oder x wenn null), Objekt = Wolke mit dem Namen der Klasse (daneben) und Inhalt, Reihungsobjekt kann abgekürzt dargestellt werden. Die Musterlösung ist:
int[] strToInt(String[] par) { int[] erg = new int[par.length]; for (int i = 0; i < erg.length; i++) erg[i] = Integer.parseInt(par[i]); return erg; }
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 Ein Paket kann
Unterpakete, Klassen, Schnittstellen, Methoden und Variablen enthalten.
( ) Falsch
Grund:
( ) Richtig Das Importieren
einer Klasse ermöglicht den Aufruf aller ihrer Methoden.
( ) Falsch
Grund:
( ) Richtig Es gibt
Java-Programme, die weder mit
java noch mit
appletviewer
( ) Falsch ausgeführt werden können.
Grund:
( ) Richtig In Java gibt es 3
Möglichkeiten, eine vorhandene Klasse in einer anderen zu verwenden.
( ) Falsch
Grund:
( ) Richtig In einer
static-Methode löst
super eine
Fehlermeldung vom Compiler aus.
( ) Falsch
Grund:
( ) Richtig Der aktuelle
Parameter eines Methodenaufrufs muss eine Variable sein,
( ) Falsch der zuvor ein Wert zugewiesen wurde.
Grund:
( ) Richtig Jede Klasse hat
mindestens eine Oberklasse und mindestens einen Konstruktor.
( ) Falsch
Grund:
( ) Richtig
null ist ein
Java-Literal.
( ) Falsch
Grund:
Aufgabe 6: Schreiben Sie die 5 Kriterien einer Zählschleife (die garantiert zu Ende geht) gegenüber der for-Schleife auf:
1. ________________________________________________________________________________________________
2. ________________________________________________________________________________________________
3. ________________________________________________________________________________________________
4. ________________________________________________________________________________________________
5. ________________________________________________________________________________________________
Wann können Sie eine Zählschleife verwenden, wann müssen Sie eine bedingungsgesteuerte Schleife benutzen? _________
__________________________________________________________________________________________________
________________________________________________________________________