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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Einführung in die Informatik Files and Streams

Einführung in die Informatik Files and Streams Einführung in die Informatik Files and Streams Arbeiten mit Dateien und Streams Wolfram Burgard Cyrill Stachniss 5.1 Dateien Bisher gingen alle Ausgaben nach Standard output, d.h. auf den Monitor. Der

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

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

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

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

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Netzwerkprogrammierung

Netzwerkprogrammierung Netzwerkprogrammierung 1 Netzwerkverbindungen Das Entwurfsziel von Java war: Einfache Verbindung zwischen Rechnern und SetBox-Systemen. Das Standardpaket java.net hilft bei allen Netzwerkverbindungen.

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

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

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

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

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

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 von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

Mehr

VS4 Slide 1. Verteilte Systeme. Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel

VS4 Slide 1. Verteilte Systeme. Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel VS4 Slide 1 Verteilte Systeme Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte

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

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

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

Der EMF-generierte Code. 7. November 2012

Der EMF-generierte Code. 7. November 2012 Der EMF-generierte Code 7. November 2012 Überblick Wie sieht der aus einem EMF-Modell generierte Code aus? Wie ist die Beziehung zwischen Modell und Code? Wie kann generierter Code durch handgeschriebenen

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

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

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

Architektur Muster. Strukturierungsprinzipien zur Organisation von Software-Systemen. Prof. Dr. Nikolaus Wulff

Architektur Muster. Strukturierungsprinzipien zur Organisation von Software-Systemen. Prof. Dr. Nikolaus Wulff Architektur Muster Strukturierungsprinzipien zur Organisation von Software-Systemen Prof. Dr. Nikolaus Wulff Architekturmuster Architekturmuster beschreiben die grundsätzliche Struktur und Organisation

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

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 5. Ausnahmebehandlung mit Exceptions 5.1 Auf Laufzeitfehler reagieren Während des Programmablaufs können Fehler auftreten, die zum Zeitpunkt des Kompilierens nicht abzusehen sind (Laufzeitfehler) tritt

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Nikolaus Krismer Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 PHP Ursprünglich:

Mehr

public class SternchenRechteckGefuellt {

public class SternchenRechteckGefuellt { Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Fehlerbehandlung und Ein- und Ausgabe Titel der Präsentation 2 Fehler = Exceptions? Die Exception- bzw. Ausnahmebehandlung in Java ist eine spezielle Form der Fehlerbehandlung Typischerweise

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Java Einführung Packages

Java Einführung Packages Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)

Mehr

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik Programmieren II Remote-Programmierung KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote-Programmierung Remote Method Invocation

Mehr

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff Die Java Stream API Funktionale Programmierung mit der Stream API des JDK 1.8 Prof. Dr. Nikolaus Wulff Funktionale Programmierung Neben der Collection API mit default Methoden ist als weitere Neuerung

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

Referat: Netzwerkprogrammierung in Java

Referat: Netzwerkprogrammierung in Java 1.)ISO/OSI und Internet Referenzmodell Referat: Netzwerkprogrammierung in Java ISO/OSI 7 Schichtenmodell (1-Bitübertragung, 2-Sicherung, 3-Netzwerk, 4-Transport, 5-Sitzung, 6- Darstellung, 7-Anwendung)

Mehr

Programmdokumentation

Programmdokumentation Programmdokumentation Der 1. Abgabe am 29.10.1998 über das 1. und 2. Programm INHALTSVERZEICHNIS: 1 ERSTES PROGRAMM: RECHNUNGSERSTELLUNG... 2 1.1 MODULARISIERUNG UND DATENSTRUKTUR... 2 1.1.1 Grundidee:

Mehr

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

9. Remote Method Invocation Grundlagen der Programmierung II (Java) 9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

E.1 Object Request Brokers

E.1 Object Request Brokers E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

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

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

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

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs 4. s Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web n und Containern Erstellung einfacher s (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K. Sierra, B. Bates, Head

Mehr

Reflection. Arthur Zaczek. Nov 2014

Reflection. Arthur Zaczek. Nov 2014 Arthur Zaczek Nov 2014 1 Einleitung 1.1 Definition Reflection ist das Auslesen von Metainformationen über Klassen, deren Methoden & Eigenschaften zur Laufzeit. 1.2 Anwendungsfälle Analyse von Programmen

Mehr

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Mobile Computing. J2ME - Mobile Media API. Ablauf. 1. Anwendungsbereich. 1. Multimedia-Prozesse. 1. Eigenschaften der MMAPI

Mobile Computing. J2ME - Mobile Media API. Ablauf. 1. Anwendungsbereich. 1. Multimedia-Prozesse. 1. Eigenschaften der MMAPI Mobile Computing Mobile Media API Ein Einblick in die Multimedia- Programmierung von Pocket-Devices Ablauf 1. Überblick über J2ME und die MMAPI 2. Klassen und Interfaces 3. Abspielen 4. Aufnehmen 5. MIDlet

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Embedded Software. Der C Präprozessor. Sichere objektbasierte Entwicklung dank C Präprozessor. Prof. Dr. Nikolaus Wulff

Embedded Software. Der C Präprozessor. Sichere objektbasierte Entwicklung dank C Präprozessor. Prof. Dr. Nikolaus Wulff Der C Präprozessor Sichere objektbasierte Entwicklung dank C Präprozessor Prof. Dr. Nikolaus Wulff Shapes kanonische Form Die Aufteilung in Methoden und Attribute erfolgt in zwei Structs XXX_Instance und

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Bearbeitet von Fritz Jobst 3. Auflage 2001. Buch. XVI, 412 S. Hardcover ISBN 978 3 446 21637 2 Format (B x L): 16,9 x 24 cm Gewicht: 788 g Weitere Fachgebiete > EDV, Informatik >

Mehr

Programmieren I und II

Programmieren I und II Handout zu den Vorlesungen Vorlesung Programmieren I und II Unit 4 Einfache I/O Programmierung Serialisierung von Objekten 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme

Mehr

Musterlösung: Wortstatistik

Musterlösung: Wortstatistik Musterlösung: Wortstatistik import importjava.io.*; class classwordsstat static staticboolean booleaniswhitespace(char iswhitespace(charc) c) return returnc c == == ' ' ' c c == == '\t' '\t' c c == ==

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Netzwerkprogrammierung & Threads

Netzwerkprogrammierung & Threads & Threads Praktikum aus Softwareentwicklung 2 Netzwerp. - 1 & Threads URL, URLConnection, UDP, TCP Threads Parallele Programme, Synchronisation, Netzwerp. - 2 Grundlagen (1/2) Kommunikation zwischen verteilten

Mehr

Pragmatik von Programmiersprachen

Pragmatik von Programmiersprachen Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Asynchrone Webservices mit Axis 1.x in Java

Asynchrone Webservices mit Axis 1.x in Java Asynchrone Webservices mit Axis 1.x in Java 1. Übersicht Architektur Da Webservices nach relativ kurzen Timeouts Anfragen abgearbeitet haben müsse, sind komplexe Anfragen wie sie in der Bioinformatik üblich

Mehr

39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub

39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub 39 Object Request Brokers 40.1 Stubs and s invoke methods at remote objects (objects that run in another JVM) Stub: Proxy for remote object example ORBs: RMI, JavaIDL : Invokes methods at remote object

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems

Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Android Persistenz Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 3 besprechen (inkl. Repetition) Die wichtigsten

Mehr

Überblick. Fernmethodenaufrufe

Überblick. Fernmethodenaufrufe Überblick Java Remote Method Invocation Marshalling und Unmarshalling Aufgabe 1 Fernmethodenaufrufe Remote Method Invocation (RMI) Aufrufe von Methoden an Objekten auf anderen Rechnern Remote-Referenz:

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Hinweise zur Verwendung der Logging API im JDK 1.4

Hinweise zur Verwendung der Logging API im JDK 1.4 Hinweise zur Verwendung der Logging API im JDK 1.4 18. Oktober 2005 michael.wohlfart@zsw-bw.de dietmar.lippold@informatik.uni-stuttgart.de Inhalt 1 Logging... 2 1.1 Übersicht... 2 1.1.1 Logger...3 1.1.2

Mehr