Programmieren in Java



Ähnliche Dokumente
Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: Weitere Informationen oder Bestellungen unter

Programmieren in Java

Programmieren in Java

Programmieren in Java

Objektorientierte Programmierung in Java

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

JAVA PROGRAMMIEREN IN JAVA7. EXTRA: Mit kostenlosem E-Book. fritz JOBST. 6. Auflage

JAVA PROGRAMMIEREN IN JAVA7. EXTRA: Mit kostenlosem E-Book. fritz JOBST. 6. Auflage

Java. Von den Grundlagen bis zu Threads und Netzen von Prof. Dr. Ernst-Wolfgang Dieterich Fachhochschule Ulm

Beschreibung des Angebotes

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik Was ist Informatik? Teilgebiete der Informatik 8

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Objektorientierte Programmierung

Michael Weigend. Python GE-PACKT

Inhalt. Vorbemerkungen... 1

C-Programmierung unter TOS ATARI ST

Das Einsteigerseminar Objektorientierte Programmierung in Java

VBA-Programmierung: Zusammenfassung

Objektorientierte Programmierung in Java

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Knasmüller.book Seite vii Mittwoch, 28. März : vii. Inhaltsverzeichnis

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Software-Entwicklung mit Delphi

Objektorientierte Programmierung OOP

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

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

jetzt lerne ich PHP 5 & MySQL 4.1 Der schnelle Einstieg in die objektorientierte

DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage

Inhaltsverzeichnis. 1 Hallo 13

Webseiten entwickeln mit ASP.NET

Grundkurs Programmieren mit Delphi

JAVA PROGRAMMIEREN IN JAVA 8 AKTUEL ZU. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

Programmieren in Java

Datenmanagement in Android-Apps. 16. Mai 2013

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

GEOPROCESSING UND MODELBUILDER

Einführung Design und Programmierung. Microsoft Dynamics NAV 2016

Graphische Benutzungsoberflächen

7. Pakete Grundlagen der Programmierung 1 (Java)

GRAFISCHE BENUTZERSCHNITTSTELLEN

Softwareengineering. Schwerpunkt Software Engineering Ausbildung

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

GUI Programmierung mit JAVA Swing

Objektorientierte Programmierung

PHP Programmierung. Seminarunterlage. Version 1.02 vom

C#.NET mit Methode. Professionelle Software entwickeln mit C# und.net: Grundlagen, Windows, ADO.NET, ASP.NET und Remoting. vieweg.

Einführung in die Programmierung

Sachwortverzeichnis

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand:

Import und Export von Übergängern

Architekturen. DB-Anwendungen: Aufgaben. Aufteilung der Funktionen. ƒ Datenbankanwendungen

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Programmieren I. Kapitel 15. Ein und Ausgabe

Über mich. Daniel Bälz. Softwareentwickler (inovex GmbH) github.com/dbaelz

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Adobe Certified Expert-Programm

Java-Grundkurs für Wirtschaftsinformatiker

Objektorientierte Software-Entwicklung

Inhaltsverzeichnis. Apps für Android entwickeln

Inhaltsverzeichnis. Vorwort. Basiswissen

Einführung in PHP. (mit Aufgaben)

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

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

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia

<Trainingsinhalt> C# programmieren

Intranets. Firmeninterne Informationssysteme mit Internet-Technologie. dpunkt.verlag. Daniel SchätzLer Fabian Eilingsfeld

Andy Hunt. Programmieren lernen. mit Minecraft-Plugins. dpunkt.verlag

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

ESB - Elektronischer Service Bericht

Architektur des agimatec-validation Frameworks

Institut für Programmierung und Reaktive Systeme 26. April Programmieren II. 10. Übungsblatt

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Einführung Internettechnologien. - Clientseitige Programmierung -

Einführung in Javadoc

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

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Inhaltsverzeichnis. Vorwort... 5 Grußwort von Safe Software Inc Über den Herausgeber Über die Autoren Einleitung...

O REILLY. Oracle PL/SQL Programmierung Paris - - Steven Feuerstein. mit Bill Pribyl. Deutsche Übersetzung von Dorothea Reder 2.

Prinzipien Objektorientierter Programmierung

Modul. Lehrveranstaltung. Betriebssysteme, Rechnerarchitekturen. EDV-Nr: Prüfungsvorl.: PA Prüfungsleist.: K90 Dozent: ra,ri,pt ECTS 10

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

Java Einführung Packages

Informatik für Ingenieure

Transkript:

Fritz Jobst Programmieren in Java 2., aktualisierte und erweiterte Auflage Technische Universität Darmstadt FACHBEREICH INFORMATIK BIBLIOTHEK Inventar-Nr.: Y?\V OQ^S \ Sachgebiete: Standort: ', Carl Hanser Verlag München Wien

IX Inhaltsverzeichnis 1. Der Einstieg in Java 1 1.1 Eigenschaften von Java 1 1.2 Was ist neu an Java? 2 1.3 Potential für die Anwendung 3 1.4 Erstellung von Programmen 3 1.5 Übersicht: Erstellung 4 1.6 Erste Programme 5 1.6.1 Text-basierende Anwendung 5 1.6.2 Applets 6 2 Prozedurale Programmierung in Java 10 2.1 Daten erklären: elementare Datentypen 10 2.2 Kontrollfluß 13 2.2.1 Einfachverzweigung mit if 13 2.2.2 Mehrfachverzweigung mit switch 14 2.2.3 Schleifen mit Vorabprüfung 16 2.2.4 Schleife mit Prüfung am Ende 18 2.2.5 Verlassen von Schleifen mit break, continue 18 2.2.6 Programmausnahmen 19 2.3 Methoden - Funktionen 23 2.3.1 Definition 23 2.3.2 Rekursion 26 2.4 Felder 28 2.4.1 Eindimensionale Felder 28 2.4.2 Behandlung von Indexfehlern 30 2.4.3 Suche in Feldern 30 2.4.3.1 Lineare Suche 31 2.4.3.2Binäre Suche 32 2.4.4 Sortieren 34 2.4.5 Mehrdimensionale Felder 37 2.4.6 Initialisierung von Feldern 39 2.5 Operatoren in Java 39 2.5.1.1 Arithmetische Operatoren.- 40 2.5.1.2 Vergleiche und logische Verknüpfungen 40 2.5.1.3Reihenfolge der Auswertung 41 2.5.1.4Inkrement und Dekrement 41 2.5.1.5 Bitverarbeitung 41 2.5.1.6Bedingter Ausdruck 42 2.6 ANSI-Escape Sequenzen 43

X Inhaltsverzeichnis 3 Objektorientierte Programmierung in Java 44 3.1 Das Konzept der Objektorientierung 44 3.1.1 Wege zur Objektorientierung 44 3.1.1.1 Objektorientierung als Erkennungsprozeß 44 3.1.1.2 Abstrakte Datentypen 45 3.1.1.3Probleme mit den bisherigen Strategien der Programmierung.. 46 3.1.2 Beziehungen zwischen Klassen 47 3.1.3 Unterklassen und Vererbung 49 3.1.4 Klassen und Instanzen 50 3.1.5 Abstrakte Klassen 50 3.1.6 Entwurf der Klassen 51 3.1.6.1 Typ 1: Die vorgegebenen Objekte 51 3.1.6.2Typ2: Verwaltungsobjekte 52 3.1.6.3Typ 3: Umgebungsobjekte 52 3.1.6.4Typ 4: Technische Objekte 52 3.1.6.5 Gemeinsame Oberklassen finden 53 3.2 Klassen in Java 53 3.2.1 Definition von Klassen 54 3.2.1.1 Der erste Schritt 54 3.2.1.2Der zweite Schritt: eine Variation 55 3.2.1.3Der dritte Schritt: erweiterte Möglichkeit 56 3.2.2 Konstruktoren 57 3.2.3 Der static-modifizierer 58 3.2.3.1 Grundlagen 58 3.2.3.2Initialisierung der static-variablen in einer Klasse 59 3.2.4 Wertzuweisung und Übergabe als Parameter 60 3.3 Unterklassen und Polymorphie in Java 63 3.3.1 Definition 63 3.3.2 Konstruktoren und Vererbung 66 3.3.3 Implementierung der Polymorphie 68 3.3.4 Cast-Anweisung für Klassen 68 3.3.5 Klassen und Ausnahmen 70 3.3.6 Abstrakte Basisklassen: Design für Vererbung 72 3.3.7 Dynamische Erzeugung von Instanzen 75 3.3.8 Der final-modifizierer 77 3.3.9 Die finalize-methode 78 3.4 Schnittstellen Vererbung: interface, implements 79 3.5 Innere Klassen 85 3.6 Sichtbarkeit und Packages 86 3.6.1 Packages mitpackage, import 86 3.6.1.1 Benutzung von Klassen oder Interfaces 86 3.6.1.2Bereitstellung von Packages 87

Inhaltsverzeichnis XI 3.6.1.3Zusammenwirken von Definition und Benutzung 87 3.6.2 Sichtbarkeit 88 3.7 Serialisierung und transient 89 3.8 Aufbau von Java-Programmen 91 4 Verwaltung von Objekten in Java 94 4.1 Vektoren und Hashtabeilen 94 4.1.1 Die Aufzählungsschnittstelle in Java 95 4.1.2 Vektoren zur Aufbewahrung von Objekten 96 4.1.3 Assoziative Aufbewahrung: Hashtable 98 4.2 Anwendungen 100 4.2.1 Zerlegung von Zeichenketten: StringTokenizer 100 4.2.2 Beispiel: Querverweisliste in Java 101 4.2.3 Binäre Bäume 106 5 Ein-/Ausgabe in Java 110 5.1 Prinzip der EhWAusgabe in Java 112 5.1.1 Eingabe in Java 113 5.1.2 Ausgabe in Java 115 5.2 Anwendungsbeispiele 116 5.2.1 Byteweise Verarbeitung von Dateien 116 5.2.2 Blockweise Verarbeitung von Dateien 118 5.2.3 Textdateien: Kundendatensätze einlesen 120 5.2.4 Daten im Format für das Internet verarbeiten 124 5.2.5 Auflistung aller Dateien in einem Verzeichnis 126 5.2.6 Zugriff auf die Einträge in einem ZIP-Archiv 127 6 Nebenläufigkeit in Java: Threads 129 6.1 Einstiegen Threads in Java 129 6.1.1 Programmierung von Threads 129 6.1.2 Threads in Applets für Animationen 133 6.1.2.1Eine blinkende Fläche 133 6.1.2.2 Tanzende Schrift 136 6.1.2.3 Wettrennen 138 6.2 Grundlagen zu Threads 138 6.2.1 Nutzen von Threads 138 6.2.2 Zustände von Threads 140 6.3 Monitore in Java 141 6.3.1 Grundlagen 141 6.3.2 Anwendung der Monitore in Java 142 6.3.2.1 Verhindern von Wettrennen mit Monitoren 142 6.3.2.2 Warten auf Ereignisse mit Monitoren 144

XII Inhaltsverzeichnis 6.4 Standardsituationen 145 6.4.1 Erzeuger-Verbraucher-Kopplung 145 6.4.1.1 Lösung: Pufferung mit nur einem Eintrag 146 6.4.1.2 Lösung: Allgemeiner Fall 148 6.4.2 Leser-Schreiber-Problem 154 6.4.3 Semaphoren 158 6.5 Deadlocks 161 6.5.1 Die fünf Philosophen 161 6.5.2 Maßnahmen gegen Deadlocks 162 6.5.3 Lösungsvorschlag 163 7 Graphik-Anwendungen in Java 167 7.1 Struktur von GUI-Anwendungen 168 7.1.1 Hierarchie der Fenster: Fenster im Fenster 168 7.1.2 Prinzip der ereignisgesteuerten Programmierung 170 7.1.3 Klassenhierarchie von GUI-Bausteinen 172 7.1.4 Elementare Controls und ihre Einbindung 173 7.1.5 Das Model-View-Controller Paradigma und Swing 175 7.1.6 Anordnung der Komponenten 176 7.2 Ereignissteuerung 177 7.2.1 Die Ereignissteuerung ab Java 1.1 177 7.2.2 Das Delegation Event Model" in Java AWT 1.1 177 7.2.2.1 Beispiel: Window-Ereignisse bearbeiten 178 7.2.2.2Low-Level vs. Semantic Level 179 7.2.3 Event Listeners: die Beobachter 180 7.2.4 Event Quellen 180 7.2.5 Adapter 181 7.2.5.1 Aufstellung aller Adapter-Klassen 181 7.2.5.2Praktische Anwendungen 182 7.2.6 Bearbeitung von Ereignissen in eigenen Komponenten 184 7.2.7 Kompatibilität AWT 1.0 mit AWT 1.1 185 Tabellarischer Vergleich AWT 1.0 vs. AWT 1.1 186 7.3 Layoutmanager 187 7.3.1 Borderlayout 187 7.3.2 Flowlayout 189 7.3.3 Gridlayout 190 7.3.4 CardLayout 191 7.3.5 GridBagLayout 192 7.4 Elementare Controls in Benutzeroberflächen 194 7.4.1 Zeichenflächen: Canvas bzw. JComponent 195 7.4.2 Schalter: Button bzw. JButton 195 7.4.3 Auswahl 197 7.4.4 Checkbox und Radiobutton 199

Inhaltsverzeichnis XIII 7.4.5 Statischer Text 202 7.4.6 Listen zur Auswahl 202 7.4.7 Textfelder 205 7.4.8 Rollbalken 208 7.4.9 Menüs in Java 212 7.5 Kurs: GUI-Anwendungen 215 7.5.1 Einbau einer Graphik-Komponente 215 7.5.2 Leichtgewichtige Komponenten 217 7.5.3 Einbau von Controls 219 7.5.4 Ein Mal-Programm 222 7.5.5 Turtle-Graphik 226 7.5.6 Graphiken und Double Buffering 232 7.5.7 Scrollbars 234 7.5.8 Dialoge in Java 237 7.5.9 Datei-Dialoge in Java 241 7.5.10 Eigene Komponenten entwickeln 244 7.6 Generieren von Menüs und Dialogen 249 8 Anwendungen für das Internet 257 8.1 Programmierung von Sockets 257 8.1.1 Grundlagen 257 8.1.2 Grundlagen für verbindungsorientierte Sockets 258 8.1.3 Verbindungsorientierte Sockets in Java 259 8.2 Projekt: ein File-Server in Java und C 262 8.2.1 Definition der Aufgaben und Schnittstellen 262 8.2.2 Der Server in Java 264 8.2.3 Der Client in Java 267 8.2.4 Der Server in C für Windows-NT und Windows 9x 268 8.3 Internet-Protokolle 271 8.3.1 HTTP 272 8.3.2 FTP 275 8.3.3 SMTP 276 9 Applets 279 9.1 Besonderheiten von Applets 279 9.1.1 Wichtige Funktionen für Applets '.'. 280 9.1.2 Methoden im Zusammenhang mit Applets 282 9.1.3 Start und Ende 283 9.1.4 Sicherheit 284 9.2 Anbindung an den Host 285 9.2.1 Anbindung an den Host über Sockets 287 9.2.2 Anbindung an den Host über die CGI-Schnittstelle 291 9.2.2.1 Prinzip der CGI-Schnittstelle 291

XIV Inhaltsverzeichnis 9.2.2.2 Client-Seite einer Anfrage in HTML 292 9.2.2.3 Was erhält der Server von dieser Anfrage? 292 9.2.2.4Schnittstelle für das Skript auf dem Server-Rechner 293 9.2.2.5 Server-Seite der Anfrage in C: das Skript 293 9.2.2.6Client-Seite einer Anfrage in Java 295 9.2.2.7 Server-Seite einer Anfrage in Java 298 9.2.3 Anbindung an den Host über die RMI-Schnittstelle 298 9.2.3.1 Anforderungsprofil 298 9.2.3.2Prinzip von RMI 299 9.2.3.3Praktische Durchführung von RMI 300 9.2.4 Anbindung an den Host über CORBA 303 9.2.4.1 Prinzip von CORBA 303 9.2.4.2Praktische Durchführung mit CORBA 304 9.3 Die Kopplung von Java mit JavaScript 308 9.3.1 Aufrufe von Java-Methoden aus Java-Script 309 9.3.2 Aufrufe von Java-Script aus Java-Applets heraus 310 9.3.3 Beispiel für eine bidirektionale Kopplung 311 9.4 Allgemeine Beispiele 314 9.4.1 Eine netzfreundliche Animation 314 9.4.2 Türme von Hanoi 318 9.5 Die APPLET-Anweisung in HTML-Dokumenten 321 10 Anbindung von Datenbanken mit JDBC 324 10.1 Prinzip von JDBC 324 10.2 Grundlagen von JDBC 325 10.2.1 Grundlegende Abläufe (vereinfacht) 325 10.2.2 Einstieg in SQL 327 10.3 Beispiel: die Kundendatenbank 327 10.3.1 Realisierung der Datenbank unter Windows 328 10.3.2 Zugriffe mit JDBC 328 10.3.3 Erweiterte Möglichkeiten mit JDBC 331 10.4 Datentypen in Java und SQL 337 10.5 Metadaten 338 10.6 Generieren von Programmteilen mit jdbcgen 339 11 Java-Beans 343 11.1 Anforderungen an Komponenten 344 11.2 Beispiel: ein Bean mit Eigenschaften 345 11.2.1 Beispiel: ein Zähler 345 11.2.2 Ein kleiner Testrahmen 345 11.2.3 Aufbau eines Archivs für das Bean 347 11.2.4 Das Bean in der Beanbox von Java 347 11.3 Auslösen von Ereignissen in Beans 348

Inhaltsverzeichnis XV 11.3.1 Definition von Ereignissen 348 11.3.2 Ereignisse im Bean 349 11.3.3 Beans in der Beanbox 351 11.3.4 Beans in einem visuellen Builder 353 12 Die Werkzeuge aus dem JDK 355 12.1 Der Compiler javac 355 12.2 Der Interpreter java 356 12.3 Appletviewer 356 12.4 Der Generator für die Dokumentation 357 12.5 Die Testhilfe 357 12.6 Der Disassembler 358 Literturverzeichnis 359 Index. 360