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.

Slides:



Advertisements
Ähnliche Präsentationen
Konzepte objektorientierter Systeme
Advertisements

Einführung in die Programmierung Ausführbare Klassen
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik F Verteilte Software - Java.
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Java: Dynamische Datentypen
Parser - Verfahren: Rekursiver Abstieg
Java: Grundlagen der Sprache
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
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.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
Datenströme DVG Datenströme.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Copyright 2007 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2007/08 Kapitel 10, Folie 1 2 Dr. Christian Herzog Technische.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Optimale Ursprungsgerade
Starten der Entwicklungsumgebung (IDE)
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Benutzeroberflächen und Graphik
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
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.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 11. Vorlesung WS 2002/2003.
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 12. Vorlesung WS 2002/2003.
Java-Kurs Übung Besprechung der Hausaufgabe
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. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
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.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 14. Vorlesung WS 2001/2002.
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. 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. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
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.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 10. Vorlesung WS 2002/2003.
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.
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
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.
Ein- und Ausgabe in Java Packet: java.io
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.
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.
Java I/O Input / Output stream Library
Java I/O Input / Output stream Library
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Einführung in die Programmierung mit Java
«Delegierter» Methoden Schablone Funktionszeiger
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

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/032 Übersicht Besprechung der Hausaufgabe Ein- und Ausgabe in Java –Motivation, Allgemeines –für Text (Character Streams) –für Rohdaten (Byte Streams)

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/033 Hausaufgabe Schreibt ein Programm, das einen Kreis (mit Radius 50) an jeder Stelle des Frame erzeugt, an die ihr mit der Maus klickt. Hinweise: –nutzt die "interaktive" Methode paint; die zu zeichnenden Objekte werden in einer LinkedList (Attribut Eures Frames) verwaltet –die Klick-Koordinaten stecken in dem ClickEvent –die Methode repaint() von Frame ruft paint() auf. –Kreise sind spezielle Ellipsen

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/034 Wh.: Interaktives Zeichnen in „paint“ bisher: Zeichnen fest in „paint“ programmiert Interaktives Zeichnen: –LinkedList mit Shapes (Attribut des Frame) –„paint“ ruft für jedes Shape in der LinkedList die Methode „draw“ auf –Füllen der LinkedList mit Shapes in anderer Methode (z.B. formMouseClicked(MouseEvent evt)) und neuzeichnen (Methode repaint()).

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/035 Wh.: Methode „Paint“ interaktiv public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; Iterator It = z.iterator();//z:LinkedList mit Shapes while(It.hasNext()) { Shape s = (Shape) It.next(); //Typkonvertierung g2d.draw(s); g2d.fill(s); }

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/036 Lösung der Hausaufgabe import java.awt.*; import java.awt.geom.*; import java.util.*; public class erzeugeKreise extends java.awt.Frame { private LinkedList z = new LinkedList(); void formMouseClicked(java.awt.event.MouseEvent evt) double x=evt.getX(); double y=evt.getY(); Ellipse2D kreis= new Ellipse2D.Double(x-25,y-25,50,50); z.add(kreis); repaint(); } public void paint (Graphics g){/* vorige Folie*/} }

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/037 Übungsaufgabe Modifiziert die Hausaufgabe so, dass Liniensegmente interaktiv durch Klicken auf Anfangs- und Endpunkt eingegeben werden können.

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/038 Ein- und Ausgabe: Motivation Wo braucht man Ein-/Ausgabe? Einlesen von GIS-Daten aus Transferdateien (GML, EDBS,..) Einlesen von Positionen aus GPS-Empfängern Einlesen von Tachymeter-Daten Senden/Empfangen von Daten über Internet-Verbindung Schreiben von GIS-Daten in Transferdateien Manipulation von Dateien (Lesen, Ändern, Schreiben) Ansteuerung von Geräten....

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/039 Allgemeines Java: Umfangreiche Klassenbibliothek für Ein-/Ausgabe Paket: java.io.*; Ein-/Ausgabe sehr fehleranfällig –Aufrufe von Ein- und Ausgabemethoden müssen mit try-catch geklammert werden –entsprechende Exceptions werden ausgelöst –Exceptions sind Unterklassen von der Klasse IOException Stream: Abstraktion der Information, die von Gerät geliefert bzw. an Gerät geschickt wird

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0310 Streams und Java-Klassen Unterscheidung nach Art der Daten: –Rohdaten-Streams (Bytes) –Zeichen-Streams (Text) Unterscheidung nach Richtung: –Eingabe-Streams –Ausgabe-Streams Java-Oberklassen: Art des Geräts bzw. Art der Ein-/Ausgabe: Wahl der Unterklasse dieser 4 Oberklassen ZeichenBytes AusgabeWriterOutputStream EingabeReaderInputStream

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0311 Ausgabe von Text-Streams

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0312 Klassen zur Ausgabe von Text-Streams gepufferte Ausgabe Textausgabe via Outputstreams Basisklasse für Konstruktion von Ausgabe- filtern Textausgabe in Datei Die gleiche Klassenhierarchie existiert auch für Reader Textuelle Ausgabe der Java-Basistypen

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0313 Beispiel: Schreiben von Text in Datei import java.io.*; try{ FileWriter fw = new FileWriter("M:\\Java\\Beispiel.txt"); String s = "Dies ist die erste Zeile Text.\n"; fw.write(s); s = "Und dies die zweite.\n" fw.write(s); fw.write("Dies ist die dritte."); fw.close(); } catch(Exception e) { ;} Um in einem String einen Backslash \ einzugeben, müssen zwei \\ hintereinander angeben werden. \n erzeugt Zeilenumbruch

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0314 Methoden von der Klasse "FileWriter" FileWriter(String Dateiname) //Konstruktor, erzeugt neue Datei FileWriter(String Dateiname,boolean Anfügen) //Konstruktor; ist Anfügen falsch, so wird Datei gelöscht und //neu geschrieben, sonst wird angefügt write(String s) //schreibt s in Datei ans Ende close() //schließt Stream

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0315 Übungsaufgabe Schreibt in eine Datei „zahlen.txt“ auf Eurem Home- Verzeichnis alle Zahlen von 1 bis sowie am Schluss die Summe dieser Zahlen. Jede Zahl soll in einer neuen Zeile erscheinen:

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0316 Lesen von Text-Streams hier: nur Lesen aus Dateien Unterschiede hinsichtlich der Menge der Zeichen, die in einem Schritt gelesen werden: –ein Buchstabe –eine Zeichenkette einer bestimmten Länge –eine Zeile –eine Token (Zeichenkette, die von bestimmten Zeichen abgegrenzt werden)

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0317 Beispiel: Lesen von Buchstaben aus Textdatei import java.io.*; try{ FileReader fr = new FileReader("M:\\Java\\Beispiel.txt"); int buchstabe; do{ buchstabe = fr.read();//Lesen des nächsten Buchstabens System.out.println("Buchstabe: " + buchstabe); } while (i != -1) //bei -1 Dateiende erreicht fr.close(); } catch(Exception e) { ;}

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0318 Beispiel: Lesen von Strings aus Textdatei import java.io.*; try{ FileReader fr = new FileReader("M:\\Java\\Beispiel.txt"); char [] cArray = new char [10]; int anzahlGelesen = fr.read(cArray,0,10); fr.close(); } catch(Exception e) { ;} Gelesene Buchstaben -> cArray max. Anzahl zu lesender Buchstaben Anfangsposition

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0319 Beispiel: zeilenweises Lesen aus Textdatei import java.io.*; try{ FileReader fr = new FileReader("M:\\Java\\Beispiel.txt"); BufferedReader br = new BufferedReader(fr); String zeile; do{ zeile = br.readLine(); if( zeile != null ) } while(zeile != null) fr.close(); } catch(Exception e) { ;}

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0320 Lesen von Token aus Textdatei Token Delimiter Token

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0321 Lesen von Token aus Textdatei Token: Teil eines Stream, der von Delimitern begrenzt wird Beispiel: –Stream: "abc de,f 66,z-2" –Delimiter: {" "} //Leerzeichen Token: abcde,f66,z-2 –Delimiter: {" ",","} //Leerzeichen und Komma Token: abcde f 66z-2 Ziel: Extraktion der Token aus Stream, die bestimmte Bedeutung haben (Parsen) –Abhängig von Menge der Delimiter

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0322 Extraktion von Token: Klasse StreamTokenizer Standard-Delimiter: Leerzeichen, Zeilenende, Dateiende,... (können ergänzt werden) Methoden: –StreamTokenizer(Reader): Konstruktor –int nextToken(): schaltet auf nächstes Token um Attribute: –int ttype: Typ des Token TT_EOF: Dateiende TT_EOL: Zeilenende TT_NUMBER : Zahl TT_WORD : String –double nval: Token als double –String sval:Token als String

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0323 Beispiel: Lesen von Token aus Textdatei import java.io.*; try{ FileReader fr = new FileReader("M:\\Java\\Beispiel.txt"); StreamTokenizer st = new StreamTokenizer(fr); do{st.nextToken(); switch (st.ttype){ case StreamTokenizer.TT_NUMBER: double d = st.nval; break; case StreamTokenizer.TT_WORD: String s = st.sval; break; default: break;} } while(st.ttype != StreamTokenizer.TT_EOF); fr.close(); }catch(Exception e) { ;}

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0324 Lesen von Byte-Streams

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0325 Klassen zum Einlesen von Rohdaten (Bytes) Datei (Lesen) zur Interprozess- kommunikation aus Strings lesen gepufferte Eingabe Lesen komprimierter Daten Einlesen von Java Datentypen Die gleiche Klassenhierarchie existiert auch für OutputStreams

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0326 Beispiel: Lesen von Bytes aus Datei import java.io.*; try{ FileInputStream fis = new FileInputStream("c:\\java\\IOTEST.class"); System.out.println(„Anzahl Bytes: „ + fis.available()); int b; do{ b = fis.read();//Lesen des nächsten Bytes } while (i != -1) //dann Dateiende erreicht fr.close(); } catch(Exception e) { ;}

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0327 Ende der Vorlesung Vorlesung ist zu Ende, aber Java nicht abschließend besprochen. Unbehandelte Konzepte (u.a.): –Interfaces: Trennung von Schnittstellen und Implementierung –Abstrakte Klassen, Geschachtelte Klassen, anonyme Klassen –Nebenläufigkeit (quasi-Parallelverarbeitung) mittels Threads –Java innerhalb von WWW-Seiten: Applets –Datenbankanbindung Vorschlag: Betrachtung bestimmter Bereiche im Rahmen einer Java-AG im Sommersemester 2003 – und Aushang zu Beginn des Sommersemesters