Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Einführung in die Programmierung Ausführbare Klassen
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Dynamische Datentypen
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Konstruktoren.
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Java-AG Ausnahmebehandlung Gerhard Gröger.
Programmieren mit JAVA
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Optimale Ursprungsgerade
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Robuste Programme durch Ausnahmebehandlung
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 8. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java
Java-AG Datenstreams: Dateibehandlung, Lesen aus und schreiben in eine Datei.
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Lösung der Hausaufgaben von Vorlesung 10 Universität Bonn Institut für Kartografie und Geoinformation Dipl.-Ing. Dörschlag, Dr. Gröger, Prof. Dr. Plümer.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 12. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 13. Vorlesung WS 2002/2003.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung.
1 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Malprogramm der vollständige und kommentierte Quellcode für.
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Einführung in die Programmierung mit Java
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Java-Kurs - 9. Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Java Programme nur ein bisschen objektorientiert.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Konstruktoren.
Einführung in die Programmierung mit Java
Einführung in die Programmierung mit Java
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
 Präsentation transkript:

Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 10. Vorlesung WS-03/04

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Formatieren des Quellcodes Regeln: 1.Klassennamen fangen mit GROßEN Buchstaben an. 2.Attributs-, Variablen- und Methodenname fangen mit kleinen Buchstaben an. 3.Nach jedem Semikolon ; (außer in for-Schleifen) und nach jeder geschweiften Klammer auf { und zu } folgt ein Zeilenumbruch !

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Formatieren des Quellcodes - und warum ?? - 1.Bessere Lesbarkeit 2.Einfacheres Finden von Fehlern ! class Punkt { public double x,y,z; public Punkt(double x, double y, double z){this.x=x;this.y=y;this.z=z;} public distanz_zu(Punkt anderer){double delta_x=this.x-anderer.x,double delta_y=this.y-anderer.y;return(Math.sqrt(delta_x*delta_x+delta_y*delta_y));} }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Formatieren des Quellcodes - und warum ?? - 1.Bessere Lesbarkeit 2.Einfacheres Finden von Fehlern ! class Punkt { public double x,y,z; public Punkt(double x, double y, double z){ this.x = x; this.y = y; this.z = z; } public distanz_zu(Punkt anderer){ double delta_x = this.x-anderer.x, double delta_y = this.y-anderer.y; return(Math.sqrt(delta_x*delta_x+delta_y*delta_y)); }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Formatieren des Quellcodes - und warum ?? - 1.Bessere Lesbarkeit 2.Einfacheres Finden von Fehlern ! 3.Die Fehlermeldungen des Compilers sind ZEILEN spezifisch class Punkt { public double x,y,z; public Punkt(double x, double y, double z){this.x=x;this.y=y;this.z=z;} public distanz_zu(Punkt anderer){double delta_x=this.x-anderer.x,double delta_y=this.y-anderer.y;return(Math.sqrt(delta_x*delta_x+delta_y*delta_y));} }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Formatieren des Quellcodes - und warum ?? - 1.Bessere Lesbarkeit 2.Einfacheres Finden von Fehlern ! 3.Die Fehlermeldungen des Compilers sind ZEILEN spezifisch class Punkt { public double x,y,z;... public distanz_zu(Punkt anderer){ double delta_x=this.x-anderer.x, double delta_y=this.y-anderer.y; return(Math.sqrt(delta_x*delta_x+delta_y*delta_y)); }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Fehler während des Ablaufs - Beispiel - public class Polygon { private Punkt[] eckpunkt; public Polygon(){ super(); } public void leeres_Polygon( int anzahl_eckpunkte){ eckpunkt = new Punkt[ anzahl_eckpunkte]; } public void punkt_einfuegen( int position, Punkt punkt){ eckpunkt[ position] = punkt; } mögliche Fehler negative Anzahl Position außerhalb des Arrays Array noch nicht angelegt

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Fehlertypen - z.B. NullPointerException, ClassCastException - Exception Der universelle Vater aller Fehlermeldungen. Von dieser Klasse sind alle anderen abgeleitet. NullPointerException ( extends Exception) Tritt auf, wenn ein Objekt benutzt werden soll, obwohl es noch nicht angelegt wurde. Student student; student.drucke_ausweis(); Beispiel :

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Fehlertypen - z.B. NullPointerException, ClassCastException - ArrayIndexOutOfBoundsException ( extends Exception) Tritt auf, wenn auf ein Arrayelement zugegriffen wird, das nicht existiert. Student student = new Student[2] Student student[3] = new Student(“Dirk“,“Dörschlag“); Beispiel : ClassCastException ( extends Exception) Tritt auf, wenn ein Objekt mittels expliziter Typenkonvertierung in eine Typ umgewandelt wird, welcher nicht zu seinen Ahnen gehört Student student = new Student(“Dirk“,“Dörschlag“); Dozent dozent = (Dozent) student; Beispiel :

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Fang den Fehler und handle - try{ anweisung } catch ( fehler ) { warnung } - try{ anweisung(en); } catch( Fehlertyp e){ anweisung(en); } Syntax : Anweisungen, bei denen ein Fehler auftreten kann. Anweisungen, die ausgeführt werden, sobald ein Fehler aufgetreten ist

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 public class Polygon { private Punkt[] eckpunkt;... public void punkt_einfuegen( int position, Punkt punkt){ try{ eckpunkt[ position] = punkt; } catch( Exception e){ System.out.println(“Polygon.punkt_einfuegen()“+ “::Ein Fehler wurde erkannt!“); }... } Fang den Fehler und handle - try{ anweisung } catch ( fehler ) { warnung } - Fehlertyp = irgend ein Fehler

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Fang den Fehler und handle - Differenzierung nach Fehlertyp - try{ anweisung(en); } catch( Fehlertyp_1 f1){ anweisung(en); } catch( Fehlertyp_2 f2){ anweisung(en); } Syntax : Anweisungen, bei denen ein Fehler auftreten kann. Anweisungen, die ausgeführt werden, sobald ein Fehlertyp_2 aufgetreten ist Anweisungen, die ausgeführt werden, sobald ein Fehlertyp_1 aufgetreten ist

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 public class Polygon { public void punkt_einfuegen( int position, Punkt punkt){ try{ eckpunkt[ position] = punkt; } catch( NullPointerException npe){ System.out.println(“Polygon.punkt_einfuegen()“+ “::Eckpunkte nicht angelegt!“); } catch( Exception e){ System.out.println(“Polygon.punkt_einfuegen()“+ “::Ein Fehler wurde erkannt!“); } Fang den Fehler und handle - try{ anweisung } catch ( fehler ) { warnung } -

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 public class Polygon { public void punkt_einfuegen( int position, Punkt punkt){ try{ eckpunkt[ position] = punkt; } catch( Exception e){ System.out.println(“Polygon.punkt_einfuegen()“+ “::Ein Fehler wurde erkannt!“); } catch( NullPointerException npe){ System.out.println(“Polygon.punkt_einfuegen()“+ “::Eckpunkte nicht angelegt!“); } Fang den Fehler und handle - try{ anweisung } catch ( fehler ) { warnung } - Die Reihenfolge ist wichtig ! immer erst den spezielleren Fehler fangen ! da spezieller !

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Fehlermeldungen weiterwerfen - throws Fehlertyp - modifier class Klassenname {... modifier rueckgabetyp methodenname( parameter) throws Fehlertyp_1(, Fehlertyp_2,...) { anweisung(en); }... } Syntax : die Methode wird an der Stelle abgebrochen, an der der Fehler auftritt !

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Fehlermeldungen weiterwerfen - throws fehler - public class Polygon { private Punkt[] eckpunkt;... public void leeres_Polygon( int anzahl_eckpunkte) throws Exception{ eckpunkt = new Punkt[ anzahl_eckpunkte]; }... }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Selbst Fehler werfen - throw( fehler); - Syntax : throw new Fehlertyp(Parameter_des_Konstruktors); mit Aufruf einer throw-Anweisung wird die Methode an dieser Stelle abgebrochen ! Eine Methode, in der eine throw-Anweisung enthalten ist, muss diese Fehler weiterwerfen (throws) oder behandeln (try{}catch(){}) !

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Selbst Fehler werfen - throw( fehler); - public class Polygon { private Punkt[] eckpunkt;... public void leeres_Polygon( int anzahl_eckpunkte) throws Exception{ if( anzahl_eckpunkte < 1){ throw( new Exception( “Polygon.leeres_Polygon(#)::“+ “zu wenig Eckpunkte“)); } eckpunkt = new Punkt[ anzahl_eckpunkte]; }... }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Java und ASCII-Dateien Mein Programm Messwerte Ergebnisse PNRXYZ

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Datei zum lesen öffnen Syntax : FileReader fr = new FileReader(“Dateiname“); FileReader ermöglicht das zeichenweise lesen von Dateiinhalten.  unpraktisch für ASCII-Dateien mit Messwerten oder Texten Java und ASCII-Dateien - öffnen und (ein-)lesen -

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Besser : Syntax : BufferedReader br = new BufferedReader(new FileReader(“Dateiname“)); BufferedReader fasst die Zeichen aus dem FileReader zu Zeichenketten zusammen und puffert die Leseoperationen. Der BufferedReader verfügt u.a. über die Methoden: br.readLine() :: auslesen der nächsten Zeile (bis zum nächsten Zeilenumbruch) in einen String br.close() :: schließen der Datei alle Methoden und der Konstruktor werfen Fehler vom Typ IOException im Falle eines Fehlers. Weitere Methoden können der JavaDoc entnommen werden. Java und ASCII-Dateien - öffnen und (ein-)lesen -

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Java und ASCII-Dateien - öffnen und (ein-)lesen - Beispiel : import java.io.*; class Polygon(){ private Punkt[] punkt;... public void load(String filename){ BufferedReader br; String line; int i = 0; try{ br = new BufferedReader(new FileReader( filename)); while( (line = br.readLine()) != null){ punkt[i++] = new Punkt( line); } br.close(); } catch( FileNotFoundException fnfe){ System.out.println(“The file :‘“+ filename +“‘ does not exist“); } catch( IOException ioe){ ioe.printStackTrace(); }}}

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Java und ASCII-Dateien - öffnen und (ein-)lesen - Beispiel : import java.io.*; class Polygon(){ private Punkt[] punkt;... public void load(String filename) throws IOException{ BufferedReader br = new BufferedReader( new FileReader( filename)); String line; int i = 0; while( (line = br.readLine()) != null){ punkt[i++] = new Punkt( line); } br.close(); }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Exkurs - Strings in Double-Werte wandeln - Beispiel : import java.io.*; class Distanz_Tabelle(){ private double[] distanz;... public void load(String filename) throws IOException{ BufferedReader br = new BufferedReader( new FileReader( filename)); String line; int i = 0; while( (line = br.readLine()) != null){ distanz[i++] = Double.parseDouble( line); } br.close(); }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Exkurs - Strings zerlegen - Beispiel : String line = “10.0;20.0;30.0;“; String[] parts = new String[3]; int first = 0, last, i = 0; while((last = line.indexOf(“;“, first)) != -1){ parts[i] = line.substring( first, last); i++; first = last + 1; }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Exkurs - Strings zerlegen - Beispiel : String line = “10.0;20.0;30.0;“; String[] parts = new String[3]; int first = 0, last, i = 0; while((last = line.indexOf(“;“, first)) != -1){ parts[i] = line.substring( first, last); i++; first = last + 1; } DEBUGGING... line = “10.0;20.0;30.0;“ parts[0] = null parts[1] = null parts[2] = null last = 4 first = 0 i = 0 line = “10.0;20.0;30.0;“ parts[0] = null parts[1] = null parts[2] = null last = 4 first = 0 i = 0

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Exkurs - Strings zerlegen - Beispiel : String line = “10.0;20.0;30.0;“; String[] parts = new String[3]; int first = 0, last, i = 0; while((last = line.indexOf(“;“, first)) != -1){ parts[i] = line.substring( first, last); i++; first = last + 1; } DEBUGGING... line = “10.0;20.0;30.0;“ parts[0] = “10.0“ parts[1] = null parts[2] = null last = 4 first = 0 i = 0 line = “10.0;20.0;30.0;“ parts[0] = “10.0“ parts[1] = null parts[2] = null last = 4 first = 0 i = 0

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Exkurs - Strings zerlegen - Beispiel : String line = “10.0;20.0;30.0;“; String[] parts = new String[3]; int first = 0, last, i = 0; while((last = line.indexOf(“;“, first)) != -1){ parts[i] = line.substring( first, last); i++; first = last + 1; } DEBUGGING... line = “10.0;20.0;30.0;“ parts[0] = “10.0“ parts[1] = null parts[2] = null last = 4 first = 0 i = 1 line = “10.0;20.0;30.0;“ parts[0] = “10.0“ parts[1] = null parts[2] = null last = 4 first = 0 i = 1

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Exkurs - Strings zerlegen - Beispiel : String line = “10.0;20.0;30.0;“; String[] parts = new String[3]; int first = 0, last, i = 0; while((last = line.indexOf(“;“, first)) != -1){ parts[i] = line.substring( first, last); i++; first = last + 1; } DEBUGGING... line = “10.0;20.0;30.0;“ parts[0] = “10.0“ parts[1] = null parts[2] = null last = 4 first = 5 i = 1 line = “10.0;20.0;30.0;“ parts[0] = “10.0“ parts[1] = null parts[2] = null last = 4 first = 5 i = 1

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Exkurs - Strings zerlegen - Beispiel : String line = “10.0;20.0;30.0;“; String[] parts = new String[3]; int first = 0, last, i = 0; while((last = line.indexOf(“;“, first)) != -1){ parts[i] = line.substring( first, last); i++; first = last + 1; } DEBUGGING... line = “10.0;20.0;30.0;“ parts[0] = “10.0“ parts[1] = null parts[2] = null last = 9 first = 5 i = 1 line = “10.0;20.0;30.0;“ parts[0] = “10.0“ parts[1] = null parts[2] = null last = 9 first = 5 i = 1 und so weiter...

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Java und ASCII-Dateien - öffnen und schreiben - Datei zum Schreiben öffnen Syntax : FileWriter fr = new FileWriter(“Dateiname“); FileWriter ermöglicht das Schreiben von Dateiinhalten.

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Java und ASCII-Dateien - öffnen und schreiben - Datei zum schreiben öffnen Syntax : BufferedWriter bw = new BufferedWriter (new FileWriter(“Dateiname“)); FileWriter ermöglicht das Schreiben von Dateiinhalten. BufferedWriter puffert das Schreiben. Es wird nur noch in die Datei geschrieben, wenn die Methode flush() oder close() aufgerufen wird.  bessere Performance !

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Java und ASCII-Dateien - öffnen und schreiben - Datei zum schreiben öffnen Syntax : PrintWriter pw = new PrintWriter( new BufferedWriter ( new FileWriter(“Dateiname“) ) ); FileWriter ermöglicht das schreiben von Dateiinhalten. BufferedWriter puffert das Schreiben. Es wird nur noch in die Datei geschrieben, wenn die Methode flush() oder close() aufgerufen wird. PrintWriter ermöglicht die Ausgabe aller primitiven Datentypen als Strings.

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Java und ASCII-Dateien - öffnen und schreiben - Beispiel : class Polygon{ private Punkt[] punkt;... public void write(String filename) throws IOException{ PrintWriter pw = new PrintWriter( new BufferedWriter( new FileWriter( filename))); for( int i = 0; i < punkt.length; i++){ pw.write( punkt[i].gibID()); pw.write( “;“); pw.write( punkt[i]. gibX()); pw.write( “;“); pw.write( punkt[i]. gibY()); pw.writeln( “;“); } pw.close(); }

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 ENDE NOCH FRAGEN ???

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Übungsaufgabe Schreibt eine Klasse Punkt mit den Attributen pnr, x und y, die die Methoden distanz_zu( Punkt other) und ausgabe() haben soll. Fange in der Methode distanz_zu(Punkt other) NullPointerExceptions ab. Schreibt eine Klasse Polygon, die unter Verwendung eines Arrays Punkte [punkt_hinzu(Punkt punkt)] aufnehmen und mittels der Methode umfang() ihren aktuellen Umfang berechen kann und zudem eine Methode ausgabe() besitzt. Eventuell mögliche Exceptions sind zu fangen ! Teste die Funktionen in einer Klasse Test_Main.

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Hausaufgabe(1/2) Ergänze die Klasse Punkt aus der Übung um den Konstruktor Punkt( String line), wobei gilt: line=“pnr;x-wert;y-wert;“. (siehe auch eine Zeile der polygon.txt !!) Ergänze die Klasse Polygon aus der Übung um eine Methode lade(String dateiname) zum Einlesen eines Polygons aus einer Datei und um eine Methode datei_ausgabe(String dateiname) zum Ausgeben der Punktnummern der Punkte im Polygon, sowie des Polygonumfangs in eine Datei. Teste die Funktionen in einer Klasse Test_Main.

IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Hausaufgabe(1/2) polygon.txt 1;2.0;3.0; 2;4.0;3.0; 3;8.0;9.0; 4;7.0;10.0; 5;1.0;6.0;