Java ist auch eine Insel

Größe: px
Ab Seite anzeigen:

Download "Java ist auch eine Insel"

Transkript

1 Christian Ullenboom Java ist auch eine Insel Programmieren mit der Java Platform, Standard Edition 6

2 Auf einen Blick 1 Java ist auch eine Sprache Sprachbeschreibung Klassen und Objekte Der Umgang mit Zeichenketten Mathematisches Eigene Klassen schreiben Angewandte Objektorientierung Exceptions Die Funktionsbibliothek Threads und nebenläufige Programmierung Raum und Zeit Datenstrukturen und Algorithmen Dateien und Datenströme Die extensible Markup Language (XML) Grafische Oberflächen mit Swing Grafikprogrammierung Netzwerkprogrammierung Verteilte Programmierung mit RMI und Web-Services JavaServer Pages und Servlets Applets Midlets und die Java ME Datenbankmanagement mit JDBC Reflection und Annotationen Logging und Monitoring Sicherheitskonzepte Java Native Interface (JNI) Dienstprogramme für die Java-Umgebung A Die Begleit-DVD

3 Inhalt Vorwort Java ist auch eine Sprache Der erste Kontakt Historischer Hintergrund Eigenschaften von Java Bytecode und die virtuelle Maschine Objektorientierung in Java Java-Security-Modell Zeiger und Referenzen Bring den Müll raus, Garbage-Collector! Ausnahmebehandlung Kein Präprozessor für Textersetzungen Keine überladenen Operatoren Java als Sprache, Laufzeitumgebung und Bibliothek Wofür sich Java nicht eignet Java im Vergleich zu anderen Sprachen Java ist Open Source Die Rolle von Java im Web Vollwertige Applikationen statt Applets Die Java Platform Standard Edition (Java SE) JDK und JRE Java-Versionen Java für die Kleinen Java für die Großen Installationsanleitung für Java SE Das erste Programm compilieren und testen Ein Quadratzahlen-Programm Der Compilerlauf Die Laufzeitumgebung Häufige Compiler- und Interpreterprobleme Entwicklungsumgebungen im Allgemeinen Die Entwicklungsumgebung Eclipse NetBeans von Sun Ein Wort zu Microsoft, Java und zu J Eclipse im Speziellen Eclipse starten Das erste Projekt anlegen Eine Klasse hinzufügen

4 Inhalt Übersetzen und Ausführen JDK statt JRE Start eines Programms ohne Speicheraufforderung Projekt einfügen oder Workspace für die Aufgaben wechseln Plugins für Eclipse Eclipse Web Tools Platform (WTP) Zum Weiterlesen Sprachbeschreibung Elemente der Programmiersprache Java Textkodierung durch Unicode-Zeichen Literale Bezeichner Reservierte Schlüsselwörter Token Kommentare Anweisungen formen Programme Anweisungen Eine Klasse bildet den Rahmen Die Reise beginnt am main() Programme übersetzen und starten Funktionsaufrufe als Ausdrücke und Anweisungen print(), println() und printf() für Bildschirmausgaben Modifizierer Anweisungen und Blöcke Datentypen Primitive Datentypen im Überblick Wahrheitswerte Variablendeklarationen Ganzzahlige Datentypen Die Fließkommazahlen float und double Alphanumerische Zeichen Ausdrücke, Operanden und Operatoren Zuweisungsoperator Arithmetische Operatoren Unäres Minus und Plus Zuweisung mit Operation Präfix- oder Postfix-Inkrement und -Dekrement Die relationalen Operatoren und die Gleichheitsoperatoren Logische Operatoren Und, Oder, Xor, Nicht Rang der Operatoren in der Auswertungsreihenfolge Die Typanpassung (das Casting)

5 Inhalt Überladenes Plus für Strings Was C(++)-Programmierer vermissen könnten Bedingte Anweisungen oder Fallunterscheidungen Die if-anweisung Die Alternative mit einer if/else-anweisung wählen Die switch-anweisung bietet die Alternative Schleifen Die while-schleife Schleifenbedingungen und Vergleiche mit == Die do-while-schleife Die for-schleife Ausbruch planen mit break und Wiedereinstieg mit continue break und continue mit Sprungmarken Methoden einer Klasse Bestandteil einer Funktion Beschreibungen in der Java-API Aufruf einer Methode Methoden ohne Parameter Statische Funktionen (Klassenmethoden) Parameter, Argument und Wertübergabe Methoden vorzeitig mit return beenden Nicht erreichbarer Quellcode bei Funktionen Rückgabewerte Methoden überladen Vorgegebener Wert für nicht aufgeführte Argumente Finale lokale Variablen Rekursive Funktionen Die Türme von Hanoi Weitere Operatoren Bits und Bytes Operationen auf Bit-Ebene Die Verschiebeoperatoren Ein Bit setzen, löschen, umdrehen und testen Bit-Funktionen der Integer- und Long-Klasse Der Bedingungsoperator Einfache Benutzereingaben Zum Weiterlesen Klassen und Objekte Objektorientierte Programmierung Warum überhaupt OOP? Wiederverwertbarkeit

6 Inhalt Eigenschaften einer Klasse Die Klasse Point Die UML (Unified Modeling Language) Hintergrund und Geschichte zur UML Wichtige Diagrammtypen der UML Neue Objekte erzeugen Anlegen eines Exemplars einer Klasse mit dem new-operator Deklarieren von Referenzvariablen Zugriff auf Variablen und Methoden mit dem».« Konstruktoren nutzen Die API-Dokumentation Import und Pakete Mit Referenzen arbeiten Die null-referenz Zuweisungen bei Referenzen Funktionen mit nicht-primitiven Parametern Identität und Gleichheit Identität von Objekten Gleichheit und die Methode equals() Wrapper-Klassen und Autoboxing Die Basisklasse Number für numerische Wrapper-Objekte Die Klasse Integer Unterschiedliche Ausgabeformate Autoboxing: Boxing und Unboxing Die Boolean-Klasse Die Klassen Double und Float für Fließkommazahlen Arrays Deklaration von Arrays Arrays mit Inhalt Die Länge eines Arrays über das Attribut length Zugriff auf die Elemente über den Index Array-Objekte erzeugen Fehler bei Arrays Vorinitialisierte Arrays Die erweiterte for-schleife Arrays mit nicht-primitiven Elementen Mehrdimensionale Arrays Die Wahrheit über die Array-Initialisierung Mehrere Rückgabewerte Methode mit variabler Argumentanzahl (Vararg) Klonen kann sich lohnen Arrays vermehren Feldinhalte kopieren Die Klasse Arrays zum Vergleichen, Füllen und Suchen

7 Inhalt 3.10 Der Einstiegspunkt für das Laufzeitsystem main() Kommandozeilen-Argumente verarbeiten Der Rückgabewert von main() und System.exit() Eigene Pakete schnüren Die package-anweisung Importieren von Klassen mit import Hierarchische Strukturen und das Default-Package Paketnamen Klassen mit gleichen Namen in unterschiedlichen Paketen Statisches Import Eine Verzeichnisstruktur für eigene Projekte Zum Weiterlesen Der Umgang mit Zeichenketten Einzelne Zeichen mit der Character-Klasse behandeln Strings und deren Anwendung String-Literale als String-Objekte für konstante Zeichenketten String-Länge und Test auf Leerstring Nach enthaltenen Zeichen und Zeichenfolgen suchen Gut, dass wir verglichen haben String-Teile extrahieren Strings anhängen, Groß-/Kleinschreibung und Leerraum Suchen und ersetzen String-Objekte mit Konstruktoren neu anlegen Konvertieren zwischen Primitiven und Strings Unterschiedliche Typen in Zeichenketten konvertieren String in primitives Element konvertieren Veränderbare Zeichenketten mit StringBuffer/StringBuilder Anlegen von StringBuffer/StringBuilder-Objekten Die Länge eines StringBuffer/-Builder-Objekts Daten anhängen Zeichen(folgen) setzen, erfragen, löschen und umdrehen Vergleichen von String/StringBuffer/StringBuilder hashcode() bei StringBuffer/StringBuilder Sprachabhängiges Vergleichen und Normalisierung Die Klasse Collator Effiziente interne Speicherung für die Sortierung Normalisierung Reguläre Ausdrücke Die Klassen Pattern und Matcher Mit MatchResult alle Ergebnisse einsammeln

8 Inhalt 4.7 Zerlegen von Zeichenketten Splitten von Zeichenketten mit split() split() in Pattern Die Klasse Scanner StringTokenizer BreakIterator als Zeichen-, Wort-, Zeilen- und Satztrenner Zeichenkodierungen und Base Über die Klasse String Kodierungen vornehmen Konvertieren mit OutputStreamWriter-Klassen Das Paket java.nio.charset Base64-Kodierung Formatieren von Ausgaben Formatieren mit format() aus String Die Format-Klassen im Überblick Zahlen, Prozente und Währungen mit NumberFormat und DecimalFormat formatieren Ausgaben mit MessageFormat formatieren Zum Weiterlesen Mathematisches Repräsentation ganzer Zahlen das Zweierkomplement Fließkommaarithmetik in Java Mantisse und Exponent Spezialwerte Unendlich, Null, NaN Wertebereich eines Typs und Überlaufkontrolle Behandlung des Überlaufs Die Eigenschaften der Klasse Math Attribute Absolutwerte und Maximum/Minimum Winkelfunktionen Runden von Werten Wurzel und Exponentialfunktionen Der Logarithmus Rest der ganzzahligen Division Zufallszahlen Mathe bitte strikt Strikt Fließkomma mit strictfp Die Klassen Math und StrictMath Die Random-Klasse Objekte aufbauen und der Seed Zufallszahlen erzeugen Pseudo-Zufallszahlen in der Normalverteilung

9 Inhalt 5.7 Große Zahlen Die Klasse BigInteger Funktionen von BigInteger Ganz lange Fakultäten Große Fließkommazahlen mit BigDecimal Mit MathContext komfortabel die Rechengenauigkeit setzen Zum Weiterlesen Eigene Klassen schreiben Eigene Klassen mit Eigenschaften deklarieren Attribute deklarieren Methoden deklarieren Die this-referenz Privatsphäre und Sichtbarkeit Für die Öffentlichkeit: public Paketsichtbar Kein Public Viewing Passwörter sind privat Wieso nicht freie Methoden und Variablen für alle? Privat ist nicht ganz privat: Es kommt darauf an, wer s sieht Zugriffsmethoden für Attribute deklarieren Setter und Getter nach der JavaBeans-Spezifikation Statische Methoden und statische Attribute Warum statische Eigenschaften sinnvoll sind Statische Eigenschaften mit static Statische Eigenschaften über Referenzen nutzen? Warum die Groß- und Kleinschreibung wichtig ist Statische Eigenschaften und Objekteigenschaften Statische Variablen zum Datenaustausch Statische Blöcke als Klasseninitialisierer Konstanten und Aufzählungen Konstanten über öffentliche statische finale Variablen Eincompilierte Belegungen der Klassenvariablen Typ(un)sicherere Aufzählungen Aufzählungen mit enum Objekte anlegen und zerstören Konstruktoren schreiben Der Standard-Konstruktor Parametrisierte und überladene Konstruktoren Konstruktor nimmt ein Objekt vom eigenen Typ an (Copy-Konstruktor) Einen anderen Konstruktor der gleichen Klasse aufrufen Initialisierung der Objekt- und Klassenvariablen

10 Inhalt Finale Werte im Konstruktor und in statischen Blöcken setzen Exemplarinitialisierer (Instanzinitialisierer) Ihr fehlt uns nicht der Garbage-Collector Implizit erzeugte String-Objekte Private Konstruktoren, Utility-Klassen, Singleton, Fabriken Assoziationen zwischen Objekten Unidirektionale 1:1-Beziehung Bidirektionale 1:1-Beziehungen Unidirektionale 1:n-Beziehung Vererbung Vererbung in Java Spielobjekte modelliert Einfach- und Mehrfachvererbung Sichtbarkeit protected Konstruktoren in der Vererbung und super Automatische und explizite Typanpassung Das Substitutionsprinzip Typen mit dem binären Operator instanceof testen Methoden überschreiben Mit super an die Eltern Kovariante Rückgabetypen Array-Typen und Kovarianz Zusammenfassung zur Sichtbarkeit Dynamisches Binden Unpolymorph bei privaten, statischen und finalen Methoden Polymorphie bei Konstruktoraufrufen Finale Klassen Nicht überschreibbare (finale) Methoden Abstrakte Klassen und abstrakte Methoden Abstrakte Klassen Abstrakte Methoden Schnittstellen Deklarieren von Schnittstellen Implementieren von Schnittstellen Markierungsschnittstellen Ein Polymorphie-Beispiel mit Schnittstellen Die Mehrfachvererbung bei Schnittstellen Keine Kollisionsgefahr bei Mehrfachvererbung Erweitern von Interfaces Subinterfaces Vererbte Konstanten bei Schnittstellen Schnittstellenmethoden, die nicht implementiert werden müssen Abstrakte Klassen und Schnittstellen im Vergleich

11 Inhalt 6.11 Geschachtelte (innere) Klassen, Schnittstellen, Aufzählungen Statische innere Klassen und Schnittstellen Mitglieds- oder Elementklassen Lokale Klassen Anonyme innere Klassen this und Vererbung Generische Datentypen Einfache Klassenschablonen Einfache Methodenschablonen Umsetzen der Generics, Typlöschung und Raw-Types Einschränken der Typen Generics und Vererbung, Invarianz Wildcards Die Spezial-Oberklasse Enum Methoden auf Enum-Objekten enum mit eigenen Konstruktoren und Methoden Dokumentationskommentare mit JavaDoc Einen Dokumentationskommentar setzen Mit javadoc eine Dokumentation erstellen HTML-Tags in Dokumentationskommentaren Generierte Dateien Dokumentationskommentare im Überblick JavaDoc und Doclets Veraltete (deprecated) Klassen, Konstruktoren und Methoden Angewandte Objektorientierung Schnittstellen in der Anwendung CharSequence als Beispiel einer Schnittstelle Die Schnittstelle Iterable Funktionszeiger Implementierung einer verketteten Liste Design-Pattern (Entwurfsmuster) Design-Pattern Das Beobachter-Pattern (Observer/Observable) Ereignisse über Listener Multicast und Unicast JavaBean Properties (Eigenschaften) Einfache Eigenschaften Indizierte Eigenschaften Gebundene Eigenschaften Veto-Eigenschaften dagegen!

12 Inhalt 8 Exceptions Problembereiche einzäunen Exceptions in Java mit try und catch Eine Datei mit RandomAccessFile auslesen Ablauf einer Ausnahmesituation Wiederholung abgebrochener Bereiche throws im Methodenkopf angeben Abschlussbehandlung mit finally Nicht erreichbare catch-klauseln Die Klassenhierarchie der Fehler Die Exception-Hierarchie Oberausnahmen auffangen Alles geht als Exception durch RuntimeException muss nicht aufgefangen werden Harte Fehler: Error Auslösen eigener Exceptions Mit throw Ausnahmen auslösen Neue Exception-Klassen deklarieren Abfangen und Weiterleiten Geschachtelte Ausnahmen Rückgabewerte bei ausgelösten Ausnahmen Der Stack-Trace Stack-Trace erfragen Assertions Assertions in eigenen Programmen nutzen Assertions aktivieren Die Funktionsbibliothek Die Java-Klassenphilosophie Übersicht über die Pakete der Standardbibliothek Object ist die Mutter aller Oberklassen Klassenobjekte Objektidentifikation mit tostring() Objektgleichheit mit equals() und Identität Klonen eines Objekts mit clone() Hashcodes über hashcode() liefern Aufräumen mit finalize() Synchronisation Klassenlader (Class Loader) Woher die kleinen Klassen kommen Setzen des Klassenpfades

13 Inhalt Die wichtigsten drei Typen von Klassenladern Der java.lang.classloader Hot Deployment mit dem URL-ClassLoader Das jre/lib/endorsed-verzeichnis getcontextclassloader() vom Thread Die Utility-Klasse System und Properties Systemeigenschaften der Java-Umgebung line.separator Browser-Version abfragen Property von der Konsole aus setzen Umgebungsvariablen des Betriebssystems Einfache Zeitmessung und Profiling Ausführen externer Programme und Skripte ProcessBuilder und Prozesskontrolle mit Process Einen Browser/ -Client/Editor aufrufen Ausführen von Skripten Benutzereinstellungen Benutzereinstellungen in Windows-Registry oder XML-Dokumenten Einträge einfügen, auslesen und löschen Auslesen der Daten und Schreiben in anderem Format Auf Ereignisse horchen Zugriff auf die gesamte Windows-Registry Musik abspielen Die Arbeit mit AudioClip Java Sound API Annotationen @SuppressWarnings Common Annotations Annotationen für Web-Services Annotationen für XML-Mapping Zum Weiterlesen Threads und nebenläufige Programmierung Nebenläufigkeit Threads und Prozesse Wie parallele Programme die Geschwindigkeit steigern können Was Java für Nebenläufigkeit alles bietet Threads erzeugen Threads über die Schnittstelle Runnable implementieren

14 Inhalt Thread mit Runnable starten Der Name eines Threads Die Klasse Thread erweitern Wer bin ich? Die Zustände eines Threads Threads schlafen Mit yield() auf Rechenzeit verzichten Das Ende eines Threads UncaughtExceptionHandler für unbehandelte Ausnahmen Einen Thread höflich mit Interrupt beenden Der stop() von außen und die Rettung mit ThreadDeath Ein Rendezvous mit join() Barrier und Austausch mit Exchanger Arbeit niederlegen und wieder aufnehmen Priorität Der Thread ist ein Dämon Der Ausführer (Executor) kommt Die Schnittstelle Executor Die Thread-Pools Threads mit Rückgabe über Callable Mehrere Callable abarbeiten Mit ScheduledExecutorService wiederholende Ausgaben und Zeitsteuerungen Synchronisation über kritische Abschnitte Gemeinsam genutzte Daten Probleme beim gemeinsamen Zugriff und kritische Abschnitte Punkte parallel initialisieren i++ sieht atomar aus, ist es aber nicht Kritische Abschnitte schützen Schützen mit ReentrantLock Synchronisieren mit synchronized Synchronized-Methoden der Klasse StringBuffer Mit synchronized synchronisierte Blöcke Dann machen wir doch gleich alles synchronisiert! Lock-Freigabe im Fall von Exceptions Mit synchronized nachträglich synchronisieren Monitore sind reentrant gut für die Geschwindigkeit Synchronisierte Methodenaufrufe zusammenfassen Deadlocks Synchronisation über Warten und Benachrichtigen Die Schnittstelle Condition Beispiel: Erzeuger-Verbraucher-Programm

15 Inhalt Warten mit wait() und Aufwecken mit notify() Falls der Lock fehlt: IllegalMonitorStateException Semaphor Atomare Operationen und frische Werte mit volatile Der Modifizierer volatile bei Objekt-/Klassenvariablen Das Paket java.util.concurrent.atomic Mit dem Thread verbundene Variablen ThreadLocal InheritableThreadLocal Gruppen von Threads in einer Thread-Gruppe Aktive Threads in der Umgebung Etwas über die aktuelle Thread-Gruppe herausfinden Threads in einer Thread-Gruppe anlegen Methoden von Thread und ThreadGroup im Vergleich Zeitgesteuerte Abläufe Die Klassen Timer und TimerTask Job-Scheduler Quartz Einen Abbruch der virtuellen Maschine erkennen Zum Weiterlesen Raum und Zeit Weltzeit Wichtige Datum-Klassen im Überblick Sprachen der Länder Sprachen und Regionen über Locale-Objekte Internationalisierung und Lokalisierung ResourceBundle-Objekte und Ressource-Dateien Ressource-Dateien zur Lokalisierung Die Klasse ResourceBundle Ladestrategie für ResourceBundle-Objekte Zeitzonen Zeitzonen durch die Klasse TimeZone repräsentieren Die Klasse Date Objekte erzeugen und Methoden nutzen Calendar und GregorianCalendar Die abstrakte Klasse Calendar Der gregorianische Kalender Ostertage Abfragen und Setzen von Datumselementen Formatieren und Parsen von Datumsangaben Ausgaben mit printf() Mit DateFormat und SimpleDateFormat formatieren

16 Inhalt Parsen von Datumswerten Zum Weiterlesen Datenstrukturen und Algorithmen Datenstrukturen und die Collection-API Designprinzip mit Schnittstellen, abstrakten Klassen, konkreten Klassen Die Basis-Schnittstellen Collection und Map Das erste Programm mit Container-Klassen Die Schnittstelle Collection Schnittstellen, die Collection erweitern, und Map Konkrete Container-Klassen Welche Klasse nehmen? Generische Datentypen in der Collection-API Die Schnittstelle Iterable und das erweiterte for Mit einem Iterator durch die Daten wandern Die Schnittstellen Enumeration und Iterator Iteratoren von Sammlungen und das erweiterte for Fail-Fast Iterator und die ConcurrentModificationException Listen ArrayList oder LinkedList? Speicherung im Feld oder in einer verketteten Liste Die Schnittstelle List ArrayList LinkedList Der Feld-Adapter Arrays.asList() toarray() von Collection verstehen die Gefahr einer Falle erkennen Primitive Elemente in den Collection-Datenstrukturen Vergleichen von Objekten Die Schnittstellen Comparator und Comparable Algorithmen mit Such- und Sortiermöglichkeiten Den größten und kleinsten Wert einer Collection finden Sortieren Mengen (Sets) HashSet TreeSet die Menge durch Bäume LinkedHashSet Stack (Kellerspeicher, Stapel) Die Methoden von Stack Ein Stack ist ein Vector aha!

17 Inhalt 12.7 Queues (Schlangen) und Deques Die Schnittstelle Queue Blockierende Queues und Prioritätswarteschlangen Deque-Klassen Assoziative Speicher Die Klassen HashMap und TreeMap Einfügen und Abfragen der Datenstruktur Die Bedeutung von equals(), hashcode() und IdentityHashMap Elemente im Assoziativspeicher müssen unveränderbar bleiben Aufzählungen und Sichten auf den Assoziativspeicher Der Gleichheitstest, Hash-Wert und Klon einer Hash-Tabelle Die Arbeitsweise einer Hash-Tabelle Multi-Maps Die Properties-Klasse Properties setzen und lesen Properties verketten Eigenschaften ausgeben Hierarchische Eigenschaften Properties speichern Klassenbeziehungen: Properties und Hashtable Algorithmen in Collections Listenoperationen: Ersetzen, Kopieren, Füllen, Umdrehen, Rotieren, Durchmischen Mit der Halbierungssuche nach Elementen fahnden Nicht-änderbare Datenstrukturen Häufigkeit eines Elements ncopies() Singletons Synchronisation der Datenstrukturen Lock-Free-Algorithmen aus java.util.concurrent Wrapper zur Synchronisation CopyOnWriteArrayList und CopyOnWriteArraySet Die Klasse BitSet für Bitmengen Ein BitSet anlegen, füllen und erfragen Mengenorientierte Operationen Funktionsübersicht Primzahlen in einem BitSet verwalten

18 Inhalt 13 Dateien und Datenströme Datei und Verzeichnis Dateien und Verzeichnisse mit der Klasse File Verzeichnis oder Datei? Existiert es? Verzeichnis- und Dateieigenschaften/-attribute Wurzelverzeichnis, Laufwerksnamen, Plattenspeicher Umbenennen und Verzeichnisse anlegen Verzeichnisse listen und Dateien filtern Dateien berühren, neue Dateien anlegen, temporäre Dateien Dateien und Verzeichnisse löschen Verzeichnisse nach Dateien iterativ durchsuchen URL- und URI-Objekte aus einem File-Objekt ableiten Mit Locking Dateien sperren Sicherheitsprüfung Mime-Typen mit dem JavaBeans Activation Framework (JAF) Zugriff auf SMB-Server mit jcifs Dateien mit wahlfreiem Zugriff Ein RandomAccessFile zum Lesen und Schreiben öffnen Aus dem RandomAccessFile lesen Schreiben mit RandomAccessFile Die Länge des RandomAccessFile Hin und her in der Datei Wahlfreier Zugriff und Pufferung mit Unified I/O Stream-Klassen und Reader/Writer am Beispiel von Dateien Mit dem FileWriter Texte in Dateien schreiben Zeichen mit der Klasse FileReader lesen Kopieren mit FileOutputStream und FileInputStream Das FileDescriptor-Objekt Basisklassen für die Ein-/Ausgabe Die abstrakten Basisklassen Übersicht über Ein-/Ausgabeklassen Die abstrakte Basisklasse OutputStream Die Schnittstellen Closeable und Flushable Ein Datenschlucker Die abstrakte Basisklasse InputStream Ressourcen wie Grafiken aus dem Klassenpfad und aus Jar-Archiven laden Ströme mit SequenceInputStream zusammensetzen Die abstrakte Basisklasse Writer Die Schnittstelle Appendable Die abstrakte Basisklasse Reader

19 Inhalt 13.5 Formatierte Textausgaben Die Klassen PrintWriter und PrintStream System.out, System.err und System.in Geschützte Passwort-Eingaben mit der Klasse Console Schreiben und Lesen aus Strings und Byte-Feldern Mit dem StringWriter ein String-Objekt füllen CharArrayWriter StringReader und CharArrayReader Mit ByteArrayOutputStream in ein Byte-Feld schreiben Mit ByteArrayInputStream aus einem Byte-Feld lesen Datenströme filtern und verketten Streams als Filter verketten Gepufferte Ausgaben mit BufferedWriter und BufferedOutputStream Gepufferte Eingaben mit BufferedReader und BufferedInputStream LineNumberReader zählt automatisch Zeilen mit Daten mit der Klasse PushbackReader zurücklegen DataOutputStream/DataInputStream Basisklassen für Filter Die Basisklasse FilterWriter Ein LowerCaseWriter Eingaben mit der Klasse FilterReader filtern Vermittler zwischen Byte-Streams und Unicode-Strömen Datenkonvertierung durch den OutputStreamWriter Automatische Konvertierungen mit dem InputStreamReader Kommunikation zwischen Threads mit Pipes PipedOutputStream und PipedInputStream PipedWriter und PipedReader Datenkompression Java-Unterstützung beim Komprimieren und Zusammenpacken Datenströme komprimieren Zip-Archive Jar-Archive Prüfsummen Die Schnittstelle Checksum Die Klasse CRC Die Adler32-Klasse Persistente Objekte und Serialisierung Objekte mit der Standard-Serialisierung speichern und lesen Zwei einfache Anwendungen der Serialisierung Die Schnittstelle Serializable

20 Inhalt Nicht serialisierbare Attribute aussparen Das Abspeichern selbst in die Hand nehmen Tiefe Objektkopien Versionenverwaltung und die SUID Wie die ArrayList serialisiert Probleme mit der Serialisierung Serialisieren in XML-Dateien JavaBeans Persistence XStream Tokenizer StreamTokenizer CSV-(Comma Separated Values-)Dateien verarbeiten Zum Weiterlesen Die extensible Markup Language (XML) Auszeichnungssprachen Die Standard Generalized Markup Language (SGML) Extensible Markup Language (XML) Eigenschaften von XML-Dokumenten Elemente und Attribute Beschreibungssprache für den Aufbau von XML-Dokumenten Schema eine Alternative zu DTD Namensraum (Namespace) XML-Applikationen Die Java-APIs für XML Das Document Object Model (DOM) Simple API for XML Parsing (SAX) Pull-API StAX Java Document Object Model (JDOM) JAXP als Java-Schnittstelle zu XML DOM-Bäume einlesen mit JAXP Serielle Verarbeitung mit StAX Unterschiede der Verarbeitungsmodelle XML-Dateien mit dem Cursor-Verfahren lesen XML-Dateien mit dem Iterator-Verfahren verarbeiten Mit Filtern arbeiten XML-Dokumente schreiben Serielle Verarbeitung von XML mit SAX Schnittstellen von SAX SAX-Parser erzeugen Die wichtigsten Methoden der Schnittstelle ContentHandler ErrorHandler und EntityResolver

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

Java 7 Mehr als eine Insel

Java 7 Mehr als eine Insel Christian Ullenboom Java 7 Mehr als eine Insel Das Handbuch zu den Java SE-Bibliotheken Auf einen Blick 1 Neues in Java 7... 41 2 Threads und nebenläufige Programmierung... 65 3 Datenstrukturen und Algorithmen...

Mehr

Vorlesung Modellierung und Programmierung I Inhaltsverzeichnis

Vorlesung Modellierung und Programmierung I Inhaltsverzeichnis Vorlesung Modellierung und Programmierung I Inhaltsverzeichnis Teil I Imperative Programmierung 0 Maschinenzahlen... 2 0.1 Additionssysteme...2 0.2 Positionssysteme...2 0.3 Dezimal- und Dualsystem...3

Mehr

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java G bhv Inhaltsverzeichnis Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Ш11ШШШШ '. ш Ш Java 19 Die Geschichte

Mehr

Auf einen Blick. Auf einen Blick

Auf einen Blick. Auf einen Blick Auf einen Blick Auf einen Blick 1 Neues in Java 8 und Java 7... 43 2 Fortgeschrittene String-Verarbeitung... 121 3 Threads und nebenläufige Programmierung... 177 4 Datenstrukturen und Algorithmen... 275

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Microsoft Visual C# 2008

Microsoft Visual C# 2008 John Sharp 13 Microsoft Visual C# 2008 Schritt für Schritt 13 13 14 15 15 16 16 17 17 17 21 22 22 23 25 26 II 40 51 Press 53 54 54 55 55 56 56 57 58 63 63 64 Inhaltsverzeichnis Einleitung 13 Einführung

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

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

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

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

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

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

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

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

Thomas Theis. Einstieg in Python. Galileo Press

Thomas Theis. Einstieg in Python. Galileo Press Thomas Theis Einstieg in Python Galileo Press 5 Inhalt Inhalt 1 Einführung 17 1.1 Vorteile von Python 17 1.2 Verbreitung von Python 18 1.3 Aufbau des Buchs 18 1.4 Übungen 20 1.5 Installation von Python

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 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

Mehr

PHP Programmierung. Seminarunterlage. Version 1.02 vom

PHP Programmierung. Seminarunterlage. Version 1.02 vom Seminarunterlage Version: 1.02 Version 1.02 vom 27. August 2013 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

jetzt lerne ich J2EE Der einfache Einstieg in die Programmierung mit der Java 2 Enterprise Edition THOMAS STARK

jetzt lerne ich J2EE Der einfache Einstieg in die Programmierung mit der Java 2 Enterprise Edition THOMAS STARK jetzt lerne ich J2EE Der einfache Einstieg in die Programmierung mit der Java 2 Enterprise Edition THOMAS STARK Inhaltsverzeichnis jetzt lerne ich Vorwort 17 1 Einleitung 19 1.1 Zentrale Konzepte 20 1.1.1

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

JSP und Servlet Programmierung

JSP und Servlet Programmierung Seminarunterlage Version: 5.02 Copyright Version 5.02 vom 1. März 2013 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

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

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Grundlagen der Informatik Generische Klassen

Grundlagen der Informatik Generische Klassen Grundlagen der Informatik Generische Klassen Generische Klassen, das Java-Collection-Framework und mehr Generische Programmierung Beobachtung: In vielen Problemstellungen hängt der grundsätzliche Aufbau

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

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services:

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services: 0BBA Karlsruhe, Vorlesung Programmieren, Web Services 1BAufgabe 1 Tomcat um das AXIS-Framework erweitern : Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz

Mehr

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition Inhaltsverzeichnis Vorwort 13 I Enterprise Java im Überblick 1 Bedeutung von Enterprise Java und IBM WebSphere 21 1.1 Enterprise Java 23 1.1.1 Anforderungen 23 1.1.2 E-Business 30 1.1.3 Java 36 1.2 IBM

Mehr

Inhaltsverzeichnis VII

Inhaltsverzeichnis VII Inhaltsverzeichnis 1 Erste Schritte...1 1.1 Einführung...1 1.2 Systemvoraussetzungen...2 1.3 Installation...2 1.3.1 Buch online lesen...3 1.3.2 Installation von Caché...3 1.3.3 Die Buch-Beispiele...4 1.4

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

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

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Inhaltsverzeichnis. Teil 1 Node.js... 1

Inhaltsverzeichnis. Teil 1 Node.js... 1 xiii Teil 1 Node.js... 1 1 Was ist Node.js? 3 1.1 Die Zeitalter des Webs................................... 3 1.1.1 1990 bis 2000: Das Web 1.0....................... 3 1.1.2 2000 bis 2010: Das Web 2.0.......................

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Besser PHP programmieren

Besser PHP programmieren Carsten Möhrke Besser PHP programmieren Handbuch professioneller PHP-Techniken Galileo Press Vorwort zur dritten Auflage ц JjlJlli!fJÜIj SI!IS* 1.1 Lernen Sie Ihr Arbeitsgerät kennen 13 1.2 Der Editor,

Mehr

Inhaltsverzeichnis VII

Inhaltsverzeichnis VII Inhaltsverzeichnis 1 Einleitung & Grundlagen 1 1.1 Was behandeln wir in dem einleitenden Kapitel? 1 1.2 Die Welt von Java und JavaFX 2 1.2.1 Was ist Java? 2 1.2.2 Etwas zur Historie von Java 3 1.2.3 Wo

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Programmierung in Java

Programmierung in Java TAE Technische Akademie Esslingen Ihr Partner für Weiterbildung seit 60 Jahren! Maschinenbau, Produktion und Fahrzeugtechnik Tribologie Reibung, Verschleiß und Schmierung Elektrotechnik, Elektronik und

Mehr

Einführung in ActionScript

Einführung in ActionScript Fachbereich Mathematik und Informatik Softwareprojekt: Spieleprogrammierung Einführung in ActionScript Do, Hoang Viet(do@mi.fu-berlin.de) Freie Universität Berlin, SoSe 2012 Agenda Allgemeine Einführung

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 Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

Schnittstellen implementieren am Beispiel Suchbaum

Schnittstellen implementieren am Beispiel Suchbaum Motivation Informatik mit Java und BlueJ Schnittstellen implementieren am Beispiel Suchbaum von Bernhard Rosing Schreiben Sie eine Klasse Person, deren Instanzen in ein TreeSet (Suchbaum) eingefügt werden

Mehr

Inhaltsverzeichnis. 4.1 Programme compilieren und starten 4.2 Arbeiten mit dem Editor 4.3 Der Objekt-Inspektor

Inhaltsverzeichnis. 4.1 Programme compilieren und starten 4.2 Arbeiten mit dem Editor 4.3 Der Objekt-Inspektor Inhaltsverzeichnis Vorwort 1 Was ist Delphi? 1.1 Die Wurzeln von Delphi 1.2 Der Konkurrent - Visual Basic 1.3 Die komponentenbasierte Entwicklung 1.4 Object-Pascal 2 Programmieren mit Delphi 2.1 Das ))visuelle((

Mehr

Web- Applikationen. in Java-Web

Web- Applikationen. in Java-Web Einführung in Java-Web Web- Applikationen Frank Huber Humboldt-Universität zu Berlin Allgemeines Java: Programmierung ist Programmierung nach Konvention Insbesondere bei Web-Applikationen wurde eine API

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Sachwortverzeichnis... 251

Sachwortverzeichnis... 251 Inhalt Vorwort... V 1 WWW World Wide Web... 1 1.1 Das Internet Infrastruktur und Administration... 2 1.2 Datenübertragung... 4 1.3 Sprachen im Web... 6 1.4 Webseiten... 7 1.4.1 Clientseitige Dynamik...

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

Java Micro Edition. Entwicklung mobiler JavaME-Anwendungen mit CLDC und MIDP. von Klaus D. Schmatz. 2., aktualis. u. erw. Aufl.

Java Micro Edition. Entwicklung mobiler JavaME-Anwendungen mit CLDC und MIDP. von Klaus D. Schmatz. 2., aktualis. u. erw. Aufl. Java Micro Edition Entwicklung mobiler JavaME-Anwendungen mit CLDC und MIDP von Klaus D. Schmatz 2., aktualis. u. erw. Aufl. Java Micro Edition Schmatz schnell und portofrei erhältlich bei beck-shop.de

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Application Server und Continuous Integration

Application Server und Continuous Integration Application Server und Continuous Integration Outline 2 Einleitung Application Server Java EE Enterprise Applikationen vs. Web Applikationen Web Application Life Cycle Servlets JavaServer Pages verschiedene

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Android Kurs Online Kurs Entwicklung auf Android-Handys

Android Kurs Online Kurs Entwicklung auf Android-Handys Android Kurs Online Kurs Entwicklung auf Android-Handys Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses Modul Eins - Programmierung J2ee 1) Grundlegende Java - Programmierung : Grundlegende

Mehr

Einführung in Swing. Graphical User Interface

Einführung in Swing. Graphical User Interface Einführung in Swing Ho Ngoc Duc IFIS - Universität zu Lübeck Graphical User Interface Ein GUI-Programm beinhaltet: Graphische Darstellung der Anwendungsdaten und Interaktionsmöglichkeiten in Fenstern Steuerung

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

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

Java 7 für Dummies. von Barry Burd, Judith Muhr. 5., überarb. U. aktual. Aufl. WILEY-VCH 2012

Java 7 für Dummies. von Barry Burd, Judith Muhr. 5., überarb. U. aktual. Aufl. WILEY-VCH 2012 von Barry Burd, Judith Muhr 5., überarb. U. aktual. Aufl. WILEY-VCH 2012 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 527 70730 0 Zu Leseprobe schnell und portofrei erhältlich bei beck-shop.de

Mehr

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java Grundlagen von Java Aufgabe 1: Typen und Zuweisungen in Java Welche der folgenden Java-Anweisungen sind fehlerhaft? Handelt es sich um einen Compiler- oder einen Laufzeitfehler? Anmerkung: Folgefehler

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

4.7.1 Intellisense... 42 4.7.2 Code Expansion... 43 4.7.3 Code Snippets... 43 4.7.4 Schriftgröße... 44 4.7.5 Event Handler... 44 4.7.

4.7.1 Intellisense... 42 4.7.2 Code Expansion... 43 4.7.3 Code Snippets... 43 4.7.4 Schriftgröße... 44 4.7.5 Event Handler... 44 4.7. Inhalt 1 Einleitung... 11 1.1 An wen richtet sich das Buch?... 11 1.2 Ziel... 11 1.3 1 = 2... 11 1.4 Voraussetzungen... 11 1.5 Was decken die einzelnen Kapitel ab?... 12 1.6 Was nicht enthalten ist...

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Klassenattribute und -methoden, Vererbung

Klassenattribute und -methoden, Vererbung Klassenattribute und -methoden, Vererbung Michael Dienert 27. März 2002 1 Prüfungsaufgabe Anwendungsentwicklung Winter 2001 Die folgende Aufgabe stammt aus der Abschlussprüfung für Fachinformatiker Anwendungsentwicklung

Mehr

Rekursion. Was heißt "rekursiv" Page 1. Eine Methode m() heißt rekursiv, wenn sie sich selbst aufruft. Beispiel: Berechnung der Fakultät (n!

Rekursion. Was heißt rekursiv Page 1. Eine Methode m() heißt rekursiv, wenn sie sich selbst aufruft. Beispiel: Berechnung der Fakultät (n! Rekursion Was heißt "rekursiv" Eine Methode m() heißt rekursiv, wenn sie sich selbst aufruft m() { m(); direkt rekursiv m() { n() { m(); indirekt rekursiv Beispiel: Berechnung der Fakultät (n!) n! = 1

Mehr

Web-Services Implementierung mit Java

Web-Services Implementierung mit Java Web-Services Implementierung mit Java J. Heinzelreiter WS 2004/05 Java-APIs für Web-Services (1) Anwendungs-Code JAXR JAXM JAX-RPC SAAJ SOAP/SwA JWSDL WSDL XML/XML-Schema Web-Services/Java - 2 Java-APIs

Mehr

Techniken der Projektentwicklung

Techniken der Projektentwicklung Einleitung Architektur Swing Beispiele Aufgabe Techniken der Projektentwicklung Swing Concepts Ingo Lütkebohle Termin 11 Ingo Lütkebohle Techniken der Projektentwicklung 1 Einleitung Architektur Swing

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

OO Programmierung in Java

OO Programmierung in Java OO Programmierung in Java Einführung WS 212/213 Prof. Dr. Margarita Esponda M. Esponda-Argüero 1 Homepage Homepage http://www.esponda.de/ws_12_13/jbk Vorlesungsfolien Literaturliste Übungen Zusätzliches

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Java-Vorkurs 2015. Wintersemester 15/16

Java-Vorkurs 2015. Wintersemester 15/16 Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Java Servlet Technology

Java Servlet Technology 0 Java Servlet Technology Seminar Medientechnik Christina Eicher 30. Juni 2003 1 Übersicht: 1. Was ist ein Servlet? 2. Cookies und Sessions 3. Die Servlet-Klassen und das Servlet-Interface 4. Der Servlet-Container

Mehr

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Beispiel Framework: Struts Was ist? Open Source Framework zum Bau von Web Applikationen Home Page http://jakarta.apache.org/struts Teil des Apache Jakarta Project Unterstützt

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets.

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Timer Sockets SMTP-Client 2 / 26 Timer Mit einem Timer können bestimmte Aktionen periodisch wiederkehrend durchgeführt

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr