Angewandte Informatik

Universität Osnabrück , 11.6.2001

Dr. Ute Schmid

letzter Abgabetermin: 18.6.2001, 8:00 Uhr

Elmar Ludwig

Übungen zu Informatik B

Sommersemester 2001

Blatt 8

Die Lösungen der Programmieraufgaben sind - wie üblich - ausreichend kommentiert (für javadoc) und zusammen mit einem lauffähigen Makefile abzugeben.

Aufgabe 1 (5 Punkte)

Sehen Sie sich noch einmal den von Java verwendeten Mechanismus zur Fehlerbehandlung (Exceptions , siehe Kapitel 16 im Skript) sowie die damit verbundene try -Kontrollstruktur an. Welche Rolle spielen dabei die Klassen Throwable, Error und Exception?

Die Datei /home/binf/Uebung/Blatt8/Puzzle.java enthält ein kleines Java-Puzzle-Programm, das einige Beispiele für den Einsatz von try, catch und finally enthält. Erläutern Sie Ihrem Tutor die Ausgabe und den Kontrollfluß im Programm.

Aufgabe 2 (3 Punkte)

Machen Sie sich mit den Fähigkeiten des java.lang.reflect Paketes sowie den Methoden der Klasse java.lang.Class vertraut (beides wurde in der Vorlesung vorgestellt). Was für Informationen kann man über diese Schnittstelle bekommen bzw. was für Eingriffsmöglichkeiten hat man? Welche Klassen sind dabei von Bedeutung?

Aufgabe 3 (8 Punkte)

Schreiben Sie nun ein Java-Programm, das als Argumente auf der Kommandozeile eine Liste von Java-Klassen- oder Interface-Namen bekommt und dann der Reihe nach versucht, jeweils unter Verwendung der Klassen aus dem Reflect-Paket (siehe Aufgabe 2) möglichst viel Informationen über die angegebene Klasse (bzw. das angegebene Interface) herauszufinden und diese in Form einer Java-Quelldatei auszugeben. Welche Informationen aus den ursprünglichen Java-Quellen können nicht rekonstruiert werden?

Sie können Ihr Programm z.B. mit den verschiedenen Klassen und Interfaces aus dem adt.MyCollection -Bereich testen.

Aufgabe 4 (4 Punkte)

Implementieren Sie ein Java-Programm, daß für jeden auf der Kommandozeile angegebenen Katalog die Namen aller in diesem Katalog enthaltenen Dateien ermittelt und ausgibt, die auf das Muster *.java passen und mindestens 200 Bytes lang sind.

Beschäftigen Sie sich dazu mit den Methoden der Klasse File aus dem Paket java.io , und setzen sie eine anonyme innere Klasse als FileFilter ein. Achtung: java.io.FileFilter gibt es erst ab Java 1.2! (Unter Java 1.1 kann man das Interface FilenameFilter verwenden.)

Gesamtpunkte: 20



Elmar Ludwig
6/1/2001