Folien VO

Werbung
Heute
• Organisatorisches
• Nachbetrachtung Zwischentest
• Restlicher Stoff (soweit ich komme)
14.1.2016
IT I - VO 11
1
Restlicher Stoff
•
•
•
•
•
•
•
•
14.1.2016
TreeMap
Exceptions und Errors
Input/Output in Files etc.
main / ausführbare jar-Files
Grafische Benutzeroberflächen
Innere Klassen
Anonyme innere Klassen
Einfache Simulationen
IT I - VO 11
2
Organisatorisches
• Nächste Woche letzte UE und letzte
Wissensüberprüfung.
• Letztes ÜBlatt
• VO am 21.1.: restlicher Stoff und
Fragestunde
• Abschlusstest am 27.1. (16 Uhr) im
Raiffeisen-HS oder Zeichensaal.
• Anmeldung zur VO-Prüfung!
14.1.2016
IT I - VO 11
3
Organisatorisches
• VO und UE werden evaluiert
(Evaluierung bis 5. Februar
möglich)
• Mündliche Kommentare und
Verbesserungsvorschläge sind für
mich am nützlichsten!
14.1.2016
IT I - VO 11
4
Nachbesprechung
Zwischentest
• Hilfsmethoden in statischer Methode
• Integer.MAX_VALUE
• Sonderfall leere Liste
• Wie initialisieren?
• Wo initialisieren?
• List vs. ArrayList
• Mehrfachaufruf der Methode aus
Oberklasse
• contains vs. equals
14.1.2016
IT I - VO 11
5
TreeMap
• implementiert Interface Map
• Das keySet ist aufsteigend sortiert.
• Dazu muss die Klasse der
keySet-Elemente natürlich das
Interface Comparable
implementieren.
14.1.2016
IT I - VO 11
6
Exceptions und Errors
• Exceptions erlauben eine einheitliche
Behandlung von Sonderfällen.
• Exceptions (und Errors) sind in einer
Vererbungshierarchie organisiert.
• Errors:
– Wesentliche Fehler des Laufzeitsystems, die
vom Anwendungsprogramm in der Regel
nicht behoben werden können.
14.1.2016
IT I - VO 11
7
Exceptions und Errors
14.1.2016
IT I - VO 11
8
Exceptions
• Geprüfte (checked) Exceptions:
– Besondere Bedingungen insbesondere der
Systemumgebung, z.B. IOException.
– Für diese Exceptions muss eine
Fehlerbehandlung vorgesehen werden.
• Ungeprüfte (unchecked) Exceptions
(=RuntimeExceptions):
– Weisen in der Regel auf Programmfehler hin.
– Für RuntimeExceptions muss keine
Fehlerbehandlung vorgesehen sein.
14.1.2016
IT I - VO 11
9
Fehlerbehandlung
• Methoden (und Konstruktoren), bei denen eine
checked Exception auftreten kann, müssen
diese im Methodenkopf angeben:
void writeObject(Object obj) throws IOException
• Wenn eine aufgerufene Methode eine Exception
wirft, kann die aufrufende Methode
– diese weitergeben,
– oder in einem try-Block abfangen.
• Beim Weitergeben muss die Exception im
Methodenkopf der aufrufenden Methode
angegeben werden.
14.1.2016
IT I - VO 11
10
try-Block
try{
Anweisungsblock;
} catch(IOException e) {
Fehlerbehandlung1;
} catch(ClassNotFoundException e) {
Fehlerbehandlung2;
}
Tritt im Anweisungsblock eine Exception auf,
wird der Anweisungsblock abgebrochen und
die entsprechende Fehlerbehandlung
durchgeführt:
Es wird die Fehlerbehandlung der ersten passenden
catch-Anweisung durchgeführt.
14.1.2016
IT I - VO 11
11
java.io.*
•
Wichtige Klassen:
–
–
–
•
Interface Serializable
–
–
•
FileWriter, FileReader, Buffered Reader
FileOutputStream, FileInputStream
ObjectOutputStream, ObjectInputStream
Nur Klassen die Serializable implementieren, können
auf Streams geschrieben werden.
Serializable erfordert keine Implementierung von
Methoden (Marker-Interface).
Nur ein sehr kleiner Ausschnitt der
Möglichkeiten von Ein-/Ausgabe auf externe
Geräte (Files, Netzwerk, …) mit Java.
14.1.2016
IT I - VO 11
12
Serializable
• Files sind eine sequentielle Anordnung von Daten.
• Objekte mit ihren Objekt-Referenzen können eine
komplizierte Struktur haben.
• Um Objekte in ein File zu schreiben, müssen die Daten
sequentiell angeordnet werden.
• Java erledigt das automatisch für alle Klassen, die
Serializable implementieren.
• Nur Objekte von Klassen die Serializable implementieren,
können auf einen Stream geschrieben werden.
• Dabei werden auch (rekursiv) alle Objekte, auf die es
vom geschriebenen Objekt aus Referenzen gibt, auf den
Stream geschrieben.
• Serializable erfordert keine Implementierung von
Methoden, es ist ein „Marker-Interface“.
14.1.2016
IT I - VO 11
13
IO-Klassen
• FileOutputStream, FileInputStream
– Stellt die Verbindung zu einem File für das
Schreiben oder Lesen her.
• ObjectOutputStream, ObjectInputStream
– Ermöglicht das Schreiben von Objekten und
primitiven Datentypen auf einen
OutputStream (bzw. das Lesen von einem
InputStream).
– Die relevanten Methoden sind
• writeObject(), readObject()
• writeInt(), readInt(), …
14.1.2016
IT I - VO 11
14
public static void main(String[] args)
• Definiert die „Hauptmethode“ einer Klasse.
• Diese Methode wird ausgeführt, wenn das
Java-Laufzeitsystem mit dieser Klasse als Input
gestartet wird.
• Z.B. java TestKlasse
• Dazu muss TestKlasse.class im entsprechenden
Verzeichnis vorhanden sein, und in Testklasse
eine main-Methode definiert sein.
• Alle weiteren benötigten Klassen müssen
ebenfalls als class-Files vorhanden sein.
• Im String-Array args werden die beim Aufruf
eingegebenen Argumente zur Verfügung
gestellt.
14.1.2016
IT I - VO 11
15
Ausführbares jar-File
• In BlueJ kann ausführbares jar-File
erstellt werden.
• Dazu muss Klasse angegeben
werden, die main-Methode enthält.
• jar-File kann durch Doppelklick
ausgeführt werden, wenn JDK und
JRE auf Rechner installiert und mit
jar-Files verknüpft.
14.1.2016
IT I - VO 11
16
Herunterladen