Java Schulung. Objektorientierte Programmierung in Java Teil VI: Wichtige Java Pakete. Prof. Dr. Nikolaus Wulff

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Java Schulung. Objektorientierte Programmierung in Java Teil VI: Wichtige Java Pakete. Prof. Dr. Nikolaus Wulff"

Transkript

1 Java Schulung Objektorientierte Programmierung in Java Teil VI: Wichtige Java Pakete Prof. Dr. Nikolaus Wulff

2 Java Pakete Für die meisten Aufgaben stellt Java bereits viele nützliche Bibliotheken zur Verfügung: Datei Ein- und Ausgabe java.io Container Klassen java.util Logging API java.util.logging Netzwerk und Socket Programmierung java.net Datenbankzugriffe java.sql Graphische Benutzerschnittstellen java.awt und javax.swing Das Problem ist lediglich das richtige Paket für die gestellte Aufgabe zu finden :-( Prof. Dr. Nikolaus Wulff 2

3 java.io Das java.io Paket enthält die wichtigen Konzepte zur Manipulation von Dateien und das Arbeiten mit Streams: File Input- und OutputStream Reader und Writer Die Streams und Reader/Writer Klassen sind nach dem Unix Pipe Konzept modelliert und lassen sich nahezu beliebig verschachteln. Prof. Dr. Nikolaus Wulff 3

4 Input Klassenhierarchie System (from lang) +$in InputStream -in FilterInputStream ObjectInputStream ByteArrayInputStream StringBufferInputStream PipedInputStream LineNumberInputStream -dis DataInputStream BufferedInputStream PushbackInputStream io (from java) FileInputStream -fd FileDescriptor +$out +$err +$in IOException String (from lang) -path +$separator +$pathseparator File Prof. Dr. Nikolaus Wulff 4

5 Output Klassenhierarchie OutputStream #out -out <<Interface>> ObjectStreamConstants <<Interface>> ObjectOutput PipedOutputStream ByteArrayOutputStream FilterOutputStream ObjectOutputStream io (from java) BufferedOutputStream -dos DataOutputStream PrintStream OutputStreamWriter -charout IOException FileOutputStream FileDescriptor +$out -fd +$out System (from lang) Prof. Dr. Nikolaus Wulff 5

6 Reader InputStream Reader #in -in InputStreamReader StringReader BufferedReader FilterReader PipedReader CharArrayReader FileReader Die Reader Klassen kapseln Texteingaben. Häufig verwenden sie im Konstruktor einen InputStream, von dem sie die Daten einlesen. Beispiel InputStream- und FileReader Die Reader lassen sich verschachteln. Prof. Dr. Nikolaus Wulff 6

7 Writer Writer -out PipedWriter CharArrayWriter StringWrite r OutputStreamWriter PrintWriter BufferedWriter Fil terwri ter Die Writer Hierarchie besteht aus Klassen für Textausgaben. Sie ist ähnlich strukturiert wie die Reader Hierarchie. Prof. Dr. Nikolaus Wulff 7

8 Fehler über Fehler... EOFException io (from java) IOException FileNotFoundException InterruptedIOException SyncFailedException ObjectStreamException CharConversionException UTFDataFormatException NotActiveException UnsupportedEncodingException StreamCorruptedException OptionalDataException InvalidObjectException InvalidClass Exception WriteAbortedException Prof. Dr. Nikolaus Wulff 8

9 Übung Entwickeln Sie das Unix Head Utility Head schreibt die ersten 10 Zeilen einer Datei auf die Console. Die Anzahl der zu lesenden Zeilen kann vorgegeben werden. Testen Sie mit JUnit! Die Ausgabe kann in eine Datei umgeleitet werden. Aufruf: java Head dateiname [-o ausgabedatei] [-l anzahl zeilen] Ziele: Kennenlernen der io-klassen: File & FileInput/OutputStream, LineNumberReader Stream Verkettungen Datei IO sinnvoll mit JUnit testen, temporäre Dateien anlegen. Prof. Dr. Nikolaus Wulff 9

10 Head in Aktion Aufruf Verwendete Klassen Ausgabe Schleife Zeilen zählen! Prof. Dr. Nikolaus Wulff 10

11 Ströme verketten Die Java IO-Ströme lassen sich wie bei der Unix Pipe Architektur verketten. Dadurch ist es möglich Filter dazwischen zu schalten oder Ströme mit neuen Eigenschaften zu dekorieren. Eingabe Datei FileInputStream copy(from, to) Ausgabe Datei FileOutputStream GZIPOutputStream Prof. Dr. Nikolaus Wulff 11

12 Ein ZIP Strom Die Verkettung von Strömen ist recht einfach: OutputStream out; out = new FileOutputStream(destination); out = new BufferedOutputStream(out); out = new GZIPOutputStream(out); und hier die generische Kopiermethode: protected void copy(inputstream in, OutputStream out) throws IOException { byte[] buf = new byte[4096]; int read, EOF = -1; while( (read = in.read(buf))!= EOF) { out.write(buf, 0, read); } } Prof. Dr. Nikolaus Wulff 12

13 Filter als Ströme Durch die Verkettung von Eingabe- oder Ausgabeströmen lassen sich sehr einfach und modular Filter entwickeln. Es muss lediglich ein zusätzlicher Filter in die Einoder Ausgabe geschaltet werden: Eingabe Datei FileInputStream MyFilterInputStream Ausgabe Datei FileOutputStream copy(from, to) Prof. Dr. Nikolaus Wulff 13

14 Ein HTML Filter Ein einfacher HTML zu Text Konverter soll entwickelt werden. Hierzu wird ein Filter verwendet, der alle HTML Markup Tags elemeniert. Da es sich hierbei um reinen Text handelt ist es einfacher mit einem Reader/Writer Paar zu arbeiten: Eingabe Datei FileReader HTMLReader Ausgabe Datei FileWriter copy(from, to) Prof. Dr. Nikolaus Wulff 14

15 BufferedReader überladen Um einen CharakterFilter zu entwickeln bietet es sich an von BufferedReader zu erben und dessen read-methode zu überladen. Die gesamte Funktionalität eines (gepufferten) Readers ist dann bereits vorhanden. Es wird lediglich eine Methode implementiert, die die HTML Auszeichnungen <xxx> herausfiltert. Eine gute Implementierung würde eventuell noch mehr leisten und z. B. an den richtigen Stellen Zeilenumbrüche einbauen etc... public class HTMLReader extends BufferedReader {...} Prof. Dr. Nikolaus Wulff 15

16 Gefiltertes read public int read(char[] buf, int start, int len) throws IOException { int i, j, num = 0; boolean markup = false; while(num == 0) { num = super.read(buf, start, len); if (num == EOF) return EOF; i = j = start; for(; i < start + num; i++) { switch( buf[i]) { case '<': markup = true; break; case '>': markup = false; break; default: if(!markup) buf[j++] = buf[i]; } // end switch } // for loop num = j - start; } // while loop return num; } Prof. Dr. Nikolaus Wulff 16

17 Java Persistenz Im IO Paket befindet sich die Serializable Schnittstelle. Serializable ist ein leeres Marker Interface. Klassen die diese Schnittstelle implementieren können von der JVM automatisch in einem Stream serialisiert und somit per TCP/IP verschickt oder im Dateisystem gespeichert und wieder ausgelesen werden. Java verwendet hierzu die von Object geerbten Methoden read/writeobject. Jedes Objekt lässt sich in einen ObjectOutputStream schreiben oder von einem ObjectInputStream lesen. Prof. Dr. Nikolaus Wulff 17

18 Übung Erweitern Sie das Painter und Shapes Beispiel, so dass der Painter die Shapes in eine Datei schreiben oder wieder auslesen kann. Geben Sie den Shapes mehr Attribute posx, posy, width, height Speichern/Lesen Sie in/aus "Paintable.dat" Geben Sie die Datei mit dem DOS Type Befehl auf der Console aus. Was sehen Sie? Was passiert wenn eine der Shapes Klassen nicht Serializable implementiert? Prof. Dr. Nikolaus Wulff 18

19 Tip: Painter ObjectOutputStream (from java.io) writeall (from painter) drawall() addpaintable() storeall() readall() readall ObjectInputStream (from java.io) <<Interface>> Serializable (from java.io) 0..* <<Interface>> Paintable (from painter) Shape (from shapes) Lesen und Schreiben sind symmetrische Aktionen mit korrepondierenden IO-Streams. Das Serializable Marker-Interface wird am besten von der abstrakten Shapes Klasse implementiert. Prof. Dr. Nikolaus Wulff 19

20 Serialisierung in Aktion public static void main(string[] args) throws Exception { Painter painter = new Painter(); addshapes(painter); painter.drawall(); System.out.println(""); String filename = "Paintable.dat"; // store graph to file system System.out.println("Store to " + filename); painter.storeall(filename); // now create an empty fresh painter Painter emptypainter = new Painter(); System.out.println(""); System.out.println("Read from " + filename); emptypainter.readall(filename); emptypainter.drawall(); } Prof. Dr. Nikolaus Wulff 20

21 Systemeigenschaften Das java.util Paket enthält die Klasse Properties als Erweiterung einer Hashtable (Map). In ihr werden System- oder Applikationseigenschaften hinterlegt. Properties werden häufig als Textdateien gepflegt, um eine Anwendung zu parametrisieren - ohne neu compilieren zu müssen. Properties lassen sich per In-/OutStream einfach (lesbar!) serialisieren. Die java.lang.system Klasse liefert z.b. per getproperties die aktuellen Umgebungsvariablen der JVM. Properties props = System.getProperties(); Prof. Dr. Nikolaus Wulff 21

22 Eine Property Datei # # general server settings # server.url = localhost server.protocol = http server.port = 80 # # available services # service.1.name = HelloWorld service.1.class = services.helloworldservice service.1.param = DummyParameter # service.2.name = Calculator service.2.class = services.calculatorservice Obiges Beispiel zeigt die Struktur einer Property Datei. Sie besteht aus (key,value)-tupeln mit dem Kommentarzeichen #. Aufgrund des einfachen Aufbaus lässt sich diese Struktur ideal in einer Map/Collection Klasse speichern... Prof. Dr. Nikolaus Wulff 22

23 Übung Schreiben Sie ein Programm, das die Systemeinstellungen auf der Console ausgibt und auf Wunsch in einer Datei speichert. Was bedeuten die Eigenschaften? Systemeinstellungen lassen sich beim Start der JVM per Kommandozeile java -Dkey=value übergeben. Probieren sie dies aus. Tip: versuchen Sie einmal java -help Erweitern Sie die Klasse, so dass diese eine beliebige Property Datei wieder einliest und ausgibt. Prof. Dr. Nikolaus Wulff 23

24 Properties einlesen Eigenschaften lassen sich von beliebigen InputStreams einlesen: protected Properties loadinput(string name) { Properties props = new Properties(); try { InputStream fin = new FileInputStream(name); props.load(fin); } catch (Exception error) { println("error reading " + name); error.printstacktrace(); } return props; } Prof. Dr. Nikolaus Wulff 24

25 Properties schreiben Ebenso leicht lassen sich diese in beliebige Ströme schreiben: protected void storeoutput(properties props, String name) { try { OutputStream fout = new FileOutputStream(name); props.store(fout, "Properties example"); } catch (Exception error) { println("error writing " + name); error.printstacktrace(); } } Prof. Dr. Nikolaus Wulff 25

26 Logging Häufig werden während der Entwicklung Debug Ausgaben per System.out.println ausgegeben. Im Release Code sollen diese meistens nicht mehr erscheinen und auch die Laufzeitumgebung nicht mehr unnötig mit String Operationen belasten. Nur noch wichtige Fehlermeldungen müssen protokolliert werden. Diese Funktionalität wird von Bibliotheken wie z.b. Log4J oder seit JDK1.4 von dem java.util.logging Paket erfüllt. Debug Nachrichten lassen sich per Konfiguration aus einer Properties Datei gezielt für einzelne Pakete oder Klassen gestaffelt nach der Wichtigkeit (DEBUG, INFO, WARN, ERROR,...) an oder ausschalten und in Dateien umleiten. Prof. Dr. Nikolaus Wulff 26

27 Logging Example import java.util.logging.logger; public class LoggingExample { public static final boolean DEBUG = true; /** create a logger associated to this class name */ private static Logger logger = Logger.getLogger(LoggingExample.class.getName()); } public void assertion(boolean cond, String reason) { if (!cond) { // assertions logging will stay in production code logger.severe("assertion " + reason); throw new IllegalStateException(reason); } } public void dosomething(object obj) { if (DEBUG) { // no info logging in production code logger.info("doing something with " + obj); } assertion(obj!= null,"object == null"); // do something useful... } public static void main(string[] args) { LoggingExample example = new LoggingExample(); example.dosomething(null); } Prof. Dr. Nikolaus Wulff 27

28 Tips zum Logging Da das DEBUG boolean als final static markiert ist, kann der Compiler dies bereits auswerten und der gesamte Codeblock wird nicht in die Class-Datei generiert, falls das Flag false ist. => Performance im Release! Damit nicht in allen Klassen DEBUG Flags gesetzt werden müssen, das Flag pro Projekt/Bibliothek in eine zentrale Schnittstellendatei auslagern. Diese wird an einer zentralen Stelle verwaltet: import myproject.settings.global; public class LoggingExample { public void dosomething(object obj) { if (Global.DEBUG) { // no info logging in production code logger.info("doing something with " + obj); } assertion(obj!= null,"object == null"); // do something useful... } Prof. Dr. Nikolaus Wulff 28

29 Logging Format Eigene LoggingFormatter können entwickelt und definiert werden. Der Formatter der Log Ausgaben lässt sich in der Logging.properties Datei parametrisieren. Optional kann er auch als Systemeigenschaft definieren werden (funktioniert noch nicht): -Djava.util.logging.ConsoleHandler.formatter=myFormatter Prof. Dr. Nikolaus Wulff 29

30 Logging.properties ## From %JDK_HOME%\jre\lib\Logging.properties handlers= java.util.logging.consolehandler # To also add the FileHandler, use the following line instead. #handlers= java.util.logging.filehandler, java.util.logging.consolehandler # Default global logging level..level= INFO ############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################ # default file output is in user's home directory. java.util.logging.filehandler.pattern = %h/java%u.log java.util.logging.filehandler.limit = java.util.logging.filehandler.count = 1 java.util.logging.filehandler.formatter = java.util.logging.xmlformatter # Limit the message that are printed on the console to INFO and above. java.util.logging.consolehandler.level = INFO # java.util.logging.consolehandler.formatter = java.util.logging.simpleformatter java.util.logging.consolehandler.formatter=logging.logformatter Einbinden eines eigenen Formatierers Prof. Dr. Nikolaus Wulff 30

31 Übung Entwickeln Sie einen LogFormatter der die Klasse und Zeilenummer der Lognachricht mit ausgibt. Tip: Die Zeilennummer lässt sich aus dem Stacktrace einer Exception ermitteln... Verwenden Sie anstatt des + Operators die Klasse java.lang.stringbuffer, um Strings zusammenzufügen. Prof. Dr. Nikolaus Wulff 31

32 Stringparsing Häufig müssen zusammengesetzte Strings nach einem bestimmten Schema zerlegt werden, z.b. CSV Dateien (comma-separated-values). Im java.util Paket befindet sich die Klasse StringTokenizer, die es gestattet String sehr komfortabel in Teilausdrücke (Tokens) zu zerlegen. String bigline = "this is a test"; StringTokenizer st = new StringTokenizer(bigline); while (st.hasmoretokens()) { System.out.println(st.nextToken()); } this is a test Prof. Dr. Nikolaus Wulff 32

33 Stringparsing Im Konstruktor kann das Trennungszeichen angeben werden Voreinstellung ist das Leerzeichen (space) ' ' == '\s' Seit dem JDK1.4 gibt es in der String Klasse die Operation split, die gleiches leistet und bevorzugt verwendet werden soll. (Erfordert regular expression Syntax). String[] result = bigline.split("\\s"); for (int x=0; x<result.length; x++) System.out.println(result[x]); Prof. Dr. Nikolaus Wulff 33

34 Übung Entwickeln Sie einen Parser, der den Klassennamen einer beliebigen Klasse in die einzelnen Pakete und die eigentliche Klasse zerlegt. Denken Sie daran auch innere Klassen und Interfaces mit auszugeben. Woran kann man diese erkennen? Tip: Schauen Sie in das bin Verzeichnis... Vergessen Sie den JUnit Test nicht. Prof. Dr. Nikolaus Wulff 34

35 Übung Entwickeln und Testen Sie einen Parser, der einen HTTP GET request in seine Bestandteile zerlegt. Ein solcher Request hat die generische Form Request-Line = Method SP Request-URI SP HTTP-Version CRLF Die URI setzt sich aus dem Pfad und dem Dokument zusammen. Handelt es sich statt dessen um ein Servlet so können durch '?' und '&' getrennt optionale Parameter übergeben werden. Request-URI = /path/dokument Request-URI = /name? arg1=val1 &arg2=val2... GET /Calculator?arg1=5&arg2=3&op=+ HTTP/1.1 Prof. Dr. Nikolaus Wulff 35

Java I/O. Input / Output stream Library Regelt I/O über verschiedene Kanäle. Führt notwendige Umwandlungen/Konvertierungen aus

Java I/O. Input / Output stream Library Regelt I/O über verschiedene Kanäle. Führt notwendige Umwandlungen/Konvertierungen aus Java I/O Input / Output stream Library Regelt I/O über verschiedene Kanäle Filesystem Console Netzwerk Intern Führt notwendige Umwandlungen/Konvertierungen aus 1 Furchtbar viele Klassen BufferedInputStream

Mehr

Java I/O. Input / Output stream Library Regelt I/O über verschiedene Kanäle. Führt notwendige Umwandlungen/Konvertierungen aus

Java I/O. Input / Output stream Library Regelt I/O über verschiedene Kanäle. Führt notwendige Umwandlungen/Konvertierungen aus Java I/O Input / Output stream Library Regelt I/O über verschiedene Kanäle Filesystem Console Netzwerk Intern Führt notwendige Umwandlungen/Konvertierungen aus 1 Furchtbar viele Klassen BufferedInputStream

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Programmieren 2 Selbststudium Semesterwoche 6

Programmieren 2 Selbststudium Semesterwoche 6 Programmieren 2 Selbststudium Semesterwoche 6 1. Datenströme (Basis: Handout PRG2_SW6_OOP) 1. Gehen Sie nochmals die Kontrollfragen A durch. A.1. Ein JavaProgramm liest Daten aus einem???strom. InputStream

Mehr

Info B VL 7: Input/Output

Info B VL 7: Input/Output Info B VL 7: Input/Output Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 7: Input/Output p.174 Exkurs:

Mehr

Datenströme in Java. Zeichenkonvertierung

Datenströme in Java. Zeichenkonvertierung Datenströme in Java Arten von Strömen Ein- und Ausgabeoperationen sind in Java im Wesentlichen über Datenströme realisiert. Dabei werden zwei Arten von Datenströmen unterschieden; byteorientierte Ströme

Mehr

Java Input/Output System (IO)

Java Input/Output System (IO) Java Input/Output System (IO) Ziel: Schreiben und Lesen von Daten auf sequentielle Medien. Paket: java.io. ab Java 1.4 auch java.nio, hier nicht beru cksichtigt. Trennung in 2 Welten: - Byteorientierte

Mehr

Vorlesung Programmieren. Java I/O: Input und Output mit Java. Ein-/Ausgabe von Daten. Java I/O. Heute. Grundlage fast aller Programme

Vorlesung Programmieren. Java I/O: Input und Output mit Java. Ein-/Ausgabe von Daten. Java I/O. Heute. Grundlage fast aller Programme Vorlesung Programmieren Java I/O Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Java I/O: Input und Output mit Java Heute Ein-/Ausgabe

Mehr

Grundlagen der Programmierung! Kapitel 10: Ein- und Ausgabe! Ziele dieses Kapitels! Datei! Das Problem!

Grundlagen der Programmierung! Kapitel 10: Ein- und Ausgabe! Ziele dieses Kapitels! Datei! Das Problem! Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München Wintersemester 2014/2015 Ziele dieses Kapitels Sie verstehen das Konzept der Ströme Sie können Klassen wie Reader, Writer,

Mehr

Dynamische Datenstrukturen Jiri Spale, Algorithmen und Datenstrukturen - Dynamische Datenstrukturen 1

Dynamische Datenstrukturen Jiri Spale, Algorithmen und Datenstrukturen - Dynamische Datenstrukturen 1 Dynamische Datenstrukturen 2006 Jiri Spale, Algorithmen und Datenstrukturen - Dynamische Datenstrukturen 1 Dynamische Datenstrukturen Keine konstante Kardinalität Speicherzuweisung erfolgt während der

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung 25.01.2007 Wintersemester 2006/2007 Computerlinguistik, Campus DU Überblick Seite 2 Datenströme: Ein und Ausgabe von Daten Java Collections Framework Eingabe/Ausgabe Seite 3 Lesen, Schreiben

Mehr

Programmieren I. Kapitel 15. Ein und Ausgabe

Programmieren I. Kapitel 15. Ein und Ausgabe Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random

Mehr

java.io Ziel Ressourcen Page 1 Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Java Tutorial Java API Dokumentation

java.io Ziel Ressourcen Page 1 Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Java Tutorial Java API Dokumentation java.io Ziel Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Ressourcen Java Tutorial Java API Dokumentation Page 1 Java API Prinzip Java IO-API ist für eine allgemeine

Mehr

Programmieren 2 09 File-IO

Programmieren 2 09 File-IO Programmieren 2 09 File-IO Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Eingabe und Ausgabe in Java Daten im Programm während der Ausführungszeit:

Mehr

Umleitung von Datenströmen

Umleitung von Datenströmen Datenströme Filter und Pipes In UNIX eingeführte Abstraktion beim Datenaustausch Programme arbeiten als Erzeuger und/oder als Verbraucher von Datenströmen ==> Filter Die Erzeuger- und Verbraucherschnittstelle

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Ströme zur Ein- und Ausgabe Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 44 Ströme zur

Mehr

Programmieren I. Dateien: Allgemeines. Vorlesung 10. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Programmieren I. Dateien: Allgemeines. Vorlesung 10. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011 Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 26 Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien 2 / 26 Dateien: Allgemeines Kaum

Mehr

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Eingabe und Ausgabe in Java Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Eingabe Beispiel1 public class Input1 { public static void main(string[] args) { for (int i = 0; i < args.length;

Mehr

Java Fehlerbehandlung

Java Fehlerbehandlung Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Socket-Programmierung unter Java

Socket-Programmierung unter Java Datenströme -Programmierung unter Java 1 - Grundlagen: Datenströme JAVA unterscheidet Streams und Reader/Writer Zur Dateneingabe: InputStream oder Reader Zur Datenausgabe: OutputStream oder Writer Verwende

Mehr

Kapitel 12. Programmierkurs. Allgemeine Konzepte Byte-Streams versus Character-Streams

Kapitel 12. Programmierkurs. Allgemeine Konzepte Byte-Streams versus Character-Streams Kapitel 12 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln WS 07/08 Dateiein- und -ausgabe Byte-Streams versus Character-Streams Die abstrakte Klasse Writer FileWriter

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Aufgaben: Ein Ausgabe Ein Rechner verwaltet nicht nur Daten, die während der Laufzeit des Programms erzeugt werden. Die meisten Programme greifen auf ältere Datenbestände zurück oder erzeugen für einen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Einführung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 14: Sequentielle Ein-/Ausgabe, Ströme, Dateiorganisation.

Einführung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 14: Sequentielle Ein-/Ausgabe, Ströme, Dateiorganisation. Universität Osnabrück 1 Einführung 3 - Objektorientierte Programmierung in Java Vorlesung 14: Sequentielle Ein-/Ausgabe, Ströme, SS 2004 Prof. Dr. F.M. Thiesing, FH Dortmund Für die Ein- und Ausgabeprogrammierung

Mehr

Höhere Programmierkonzepte Testklausur

Höhere Programmierkonzepte Testklausur Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length

Mehr

Java Einführung IO (Eingabe/Ausgabe)

Java Einführung IO (Eingabe/Ausgabe) Java Einführung IO (Eingabe/Ausgabe) Inhalt dieser Einheit Ein-/Ausgabe: Arbeiten mit Verzeichnissen und Dateien Schreiben und Lesen von Dateien bzw. Datenströmen Fehlerbehandlung beim Schreiben und Lesen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 14 Dateiverwaltung, das Stream-Konzept... 14-2 14.1 Datenströme... 14-2 14.1.1 Datenströme in Java, Paket java.io.*... 14-3 14.1.2 Standarddatenströme... 14-4 14.2 Klasse java.io.file... 14-7 14.3

Mehr

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer Java Kurs Objektorientierung II & die Java Klassenbibliothek Kristian Bergmann und Arthur Lochstampfer Vergleich class Apfel { String farbe; int gewicht; String geerntetin; class Erdbeere { String farbe;

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Streams. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Streams. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Streams Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 4.7.07 G. Bohlender (IANM UNI Karlsruhe) Streams 4.7.07 1 / 7 Übersicht 1 Einführung

Mehr

Streams. V by WBR1&MOU2/BFH-TI. Berner Fachhochschule Hochschule für Technik und Informatik HTI

Streams. V by WBR1&MOU2/BFH-TI. Berner Fachhochschule Hochschule für Technik und Informatik HTI Ein- Ausgabe Streams Unterlagen zum Modul "OOP mit Java" V 3.0 2011 by WBR1&MOU2/BFH-TI Ein- Ausgabe, Streams V3.0 2011 by WBR1&MOU2/BFH-TI Definition: Berner Fachhochschule Streams Ein Stream ist eine

Mehr

Programmieren in Java

Programmieren in Java Datei-Handling Anonyme Klassen 2 Enums Enums sind eine Aufzählung von int-werten, wobei jedes Element einem bestimmten Namen zugeordnet ist In Java werden Enums über das Schlüsselwort enum definiert und

Mehr

Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Martin Schultheiß

Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Martin Schultheiß Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 Dateien: Allgemeines 2 Dateien lesen 3 Beispiel: CSV-Daten 4 Filter 5 Ausgabe in Dateien Dateien: Allgemeines Kaum eine

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Einführung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 14: Sequentielle Ein-/Ausgabe, Streams, Dateiorganisation.

Einführung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 14: Sequentielle Ein-/Ausgabe, Streams, Dateiorganisation. Universität Osnabrück 1 Einführung 3 - Objektorientierte Programmierung in Java Vorlesung 14: Sequentielle Ein-/Ausgabe, Streams, SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Für die Ein- und Ausgabeprogrammierung

Mehr

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung Aufgabe Editor package BA.GUI.Swing; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.logging.level; import java.util.logging.logger;

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2 Problemstellung Objekt mit aggregierten Objekten: att1: att2: 17 Object1:Klasse1 Object2:Klasse2 att1: Klasse1 att2: 9 serialisiert als Datei: Klasse1 att1 att2 Klasse2 att1 att2 -Speicherung von Objekten

Mehr

Beispiel Time Client/Server

Beispiel Time Client/Server Beispiel Time Client/Server /** * * Programmbeschreibung: * --------------------- * Dieses Programm ermittelt über eine TCP/IP-Verbindung die Uhrzeit eines * entfernten Rechners, wobei es sowohl die Rolle

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Client-Server TCP/IP - Kodierung

Client-Server TCP/IP - Kodierung Client-Server TCP/IP - Kodierung Die Socketklassen Ein Socket (engl. Sockel) ist eine bidirektionale Netzwerk-Kommunikationsschnittstelle, deren Verwaltung das Betriebssystem übernimmt. Die Kombination

Mehr

JAVA für Einsteiger. Streams und Dateien. eden market Autor: Norman Lahme

JAVA für Einsteiger. Streams und Dateien. eden market Autor: Norman Lahme JAVA für Einsteiger Streams und Dateien eden market Autor: Norman Lahme 1 Gliederung 1. Einleitung 2. Bildschirmausgabe und Tastatureingabe 3. Laden und Speichern von Tex ten 4. Laden und Speichern von

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

boolean ispalindrome = word.equalsignorecase(reverse.tostring());

boolean ispalindrome = word.equalsignorecase(reverse.tostring()); Bereich: Input/Output (2) Palindrome speichern Package: de.dhbwka.java.exercise.io Musterlösung Klasse: PalindromeFile package de.dhbwka.java.exercise.io; import java.io.bufferedreader; import java.io.file;

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Wiederholung

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Wiederholung JAVA Wiederholung 137 WIEDERHOLUNG ALLGEMEIN public static void main(string args[]) {...} Namenskonventionen: KlassenNamen beginnen mit Großbuchstaben Variablen- und Methoden-Namen mit kleinem Buchstaben

Mehr

Client-Server TCP/IP - Kodierung

Client-Server TCP/IP - Kodierung Client-Server TCP/IP - Kodierung Die klassen Ein (engl. Sockel) ist eine bidirektionale Netzwerk-Kommunikationsschnittstelle, deren Verwaltung das Betriebssystem übernimmt. Die Kombination aus IP-Adresse

Mehr

Exceptions und Zugriffsmodifikatoren

Exceptions und Zugriffsmodifikatoren Exceptions und Zugriffsmodifikatoren Aufgabe 1: Exceptions import java.awt.awtexception; public class ExceptionTest { public static void main(string[] args) { System.out.println("Anfang main"); ExceptionTest

Mehr

Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren.

Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Niemand bedauert diese Fehler mehr als der Autor selbst.

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 13 Java-E/A-System 13.1. E/A-System-Überblick 13.2 Dateisystem - Betriebssystemsicht 13.3 Java-I/O-System 13.4 I/O-Klassenhierachie 13.5 InputStream class; Reader class 13.5.1 read() method 13.5.2 skip()

Mehr

7. Pakete Grundlagen der Programmierung 1 (Java)

7. Pakete Grundlagen der Programmierung 1 (Java) 7. Pakete Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 29. November 2005 Einordnung im Kontext der Vorlesung 1.

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Dr. Klaus Höppner

Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Dr. Klaus Höppner Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 26 Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien 2 / 26 Dateien: Allgemeines Kaum

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II AG Praktische Informatik Technische Fakultät Vorlesung Sommer 2009 Teil I Ein- und Ausgabe In den bisherigen Programmbeispielen wurden die Benutzereingaben immer über

Mehr

Einführung zur Aufgabengruppe 2

Einführung zur Aufgabengruppe 2 Einführung zur Aufgabengruppe 2 Alle Literaturhinweise beziehen sich auf die Vorlesung WS 10 Modellierung und Programmierung 1 1 Dateiverwaltung, das Stream-Konzept... 1-2 1.1 Datenströme (s. Kapitel Streams)...

Mehr

Institut für Betriebssysteme und Rechnerverbund Übungslösungen zur Vorlesung Verteilte Systeme, WS 02/03 http:www.ibr.cs.tu-bs.de/lehre/ws0203/vs/ Dozent: Prof. Dr. Stefan Fischer

Mehr

Kapitel 9. Ein- und Ausgabe. 9.1 Ströme

Kapitel 9. Ein- und Ausgabe. 9.1 Ströme Kapitel 9 Ein- und Ausgabe In den bisherigen Programmbeispielen wurden die Benutzereingaben immer über die Kommandozeile und Ausgaben immer durch Aufruf der Methode System.out.println realisiert. Tatsächlich

Mehr

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets.

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 19 2 / 19 Über einen Socket kann eine Anwendung die Implementierung des Netzwerkprotokolls des darunter liegenden Betriebssystems

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

Java I Vorlesung Exceptions

Java I Vorlesung Exceptions Java I Vorlesung 8 Exceptions 14.6.2004 Exceptions (Ausnahmen) Klassen für Ein- und Ausgabe Ausnahmen Ausnahmen (Exceptions) sind ein Mechanismus zum kontrollierten Melden und Reagieren auf Fehler. Man

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Ein- und Ausgabe in Java

Ein- und Ausgabe in Java Ein- und Ausgabe in Java Das Package java.io enthält eine Sammlung von Klassen, die die Kommunikation mit dem Computer steuern Einlesen und Ausgeben von Dateien Ausgabe auf dem Bildschirm Einlesen von

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 02: Streams filtern Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Datenströme (Streams) Filtern FilterWriter, - Reader Praxis:

Mehr

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Streams und Files. Datenströme Byteweises Lesen und Schreiben Zeichenweises Lesen und Schreiben Dateien Serialisierung

Streams und Files. Datenströme Byteweises Lesen und Schreiben Zeichenweises Lesen und Schreiben Dateien Serialisierung Streams und Files Datenströme Byteweises Lesen und Schreiben Zeichenweises Lesen und Schreiben Dateien Serialisierung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Streams und Files Datenströme

Mehr

Kapitel 15: Ausnahmen und

Kapitel 15: Ausnahmen und Kapitel 15: Ausnahmen und Ein-/Ausgabe Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Java Einführung Exception Handling. Kapitel 17

Java Einführung Exception Handling. Kapitel 17 Java Einführung Exception Handling Kapitel 17 Inhalt Was sind Exceptoins? Wie werden sie ausgelöst? Wie kann man Exceptions behandeln? Erweiterung von Exceptions Spezialfall IO 2 Ausnahmezustände Im Ablauf

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete Grundlagen der Programmierung Prof. H. Mössenböck 15. Pakete Idee Paket = Sammlung zusammengehöriger Klassen (Bibliothek) Zweck mehr Ordnung in Programme bringen bessere Kontrolle der Zugriffsrechte (wer

Mehr

Angewandte IT-Sicherheit

Angewandte IT-Sicherheit Angewandte IT-Sicherheit Johannes Stüttgen Lehrstuhl für praktische Informatik I 30.11.2010 Lehrstuhl für praktische Informatik I Angewandte IT-Sicherheit 1 / 28 Aufgabe 1 Betrachten sie folgendes Programm:

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Instrumentierung und Dekodierung

Instrumentierung und Dekodierung 116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so

Mehr

Prozeduren, Funktionen, Datenströme, JavaDoc

Prozeduren, Funktionen, Datenströme, JavaDoc Prozeduren, Funktionen, Datenströme, JavaDoc Thomas Röfer Unterprogramme, Prozeduren und Funktionen Formale Parameter Überladen von Funktionen Rekursion Dokumentieren von Quelltexten Datenströme Rückblick

Mehr

von Anja Austermann Drag and Drop

von Anja Austermann Drag and Drop von Anja Austermann Drag and Drop »Drag and Drop«ist die Bezeichnung für den Datentransfer zwischen unterschiedlichen Anwendungen mit grafischer Benutzeroberfläche. Zur Zeit arbeitet Drag and Drop in Java

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 13 Java-E/A-System 13.1. E/A-System-Überblick 13.2 Dateisystem - Betriebssystemsicht 13.3 Java-I/O-System 13.4 I/O-Klassenhierachie 13.5 InputStream class; Reader class 13.5.1 read() method 13.5.2 skip()

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen Kommunikationsnetze Gliederung 1. Socket-Programmierung unter C 2. Socket-Programmierung unter Java Gliederung Berkeley Sockets (Erste freie TCP/IP-Implementierung in Berkeley UNIX): SOCKET: Erzeugen eines

Mehr

Programmieren 2 09 File-IO

Programmieren 2 09 File-IO Programmieren 2 09 File-IO Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Eingabe und Ausgabe in Java Daten im Programm während der Ausführungszeit:

Mehr

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze Vorlesung 14 Serialisierung, Autoboxing 1 Serialisierung von Objekten Die Objekte innerhalb eines Java-Programmes sollen manchmal auch nach Beendigung der JVM verfügbar bleiben Objekte müssen ab und an

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 15 Java API Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT FÜR INFORMATIK

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Die Beitragssatzdatei in der Version 5.0 wird nur über https Download auf einer frei zugänglichen Webseite auf den folgenden Seiten bereitgestellt.

Mehr

Programmiermethodik. Übung 13

Programmiermethodik. Übung 13 Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java

Mehr

Programmieren 2 Übung Semesterwoche 6

Programmieren 2 Übung Semesterwoche 6 Programmieren 2 Übung Semesterwoche 6 1. Aufgabe: Klasse Cube public class Cube implements Comparable protected int number; Nummer des Kubus int s1, s2, s3; Die 3 Seiten des Kubus. public static

Mehr

Sachwortverzeichnis. DataInputStream 139; 156 DataOutputStream 139; 156

Sachwortverzeichnis. DataInputStream 139; 156 DataOutputStream 139; 156 Sachwortverzeichnis A abgeleitete Klasse 46 abstract 49; 53 Abstract Window Toolkit 4; 195 abstrakte Klasse 49 abstrakte Methode 49 Accessability-API 5 ActionEvent 214; 218; 226; 248 Adapterklasse 209

Mehr

Programmieren 2 10 Binäre und Objekt-IO

Programmieren 2 10 Binäre und Objekt-IO Programmieren 2 10 Binäre und Objekt-IO Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Text und Binärdateien Bisher nur mit Textdateien gearbeitet

Mehr

Network Communication. Dr. Jürgen Eckerle WS 06/07

Network Communication. Dr. Jürgen Eckerle WS 06/07 Network Communication Dr. Jürgen Eckerle WS 06/07 1 Thread-Programmierung ist wichtig um Nebenläufigkeit bei der Netzwerkprogrammierung zu realisieren Typisches Muster beim Server: Server-Handler. Der

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr