Java 6 - Programmieren mit der Java Standard Edition
von: Berthold Daum
Addison-Wesley Verlag, 2007
ISBN: 9783827324689
Sprache: Deutsch
477 Seiten, Download: 3634 KB
Format: PDF, auch als Online-Lesen
Java 6 - Programmieren mit der Java Standard Edition | 1 | ||
Inhalt | 6 | ||
Einführung | 6 | ||
1 Den Arbeitsplatz einrichten | 6 | ||
2 Grundlagen I – von Objekten und Klassen | 6 | ||
3 Java – die Sprache | 7 | ||
4 Kernklassen der JRE | 8 | ||
5 Fortgeschrittene Techniken | 8 | ||
6 Grundlagen II – Entwurfsmuster | 9 | ||
7 Benutzeroberflächen | 9 | ||
8 Multimedia | 9 | ||
9 Desktop-Integration | 10 | ||
10 Persistenz | 10 | ||
11 Verteilte Anwendungen | 10 | ||
12 Werkzeuge | 11 | ||
13 Ausblick | 11 | ||
Bibliografie | 11 | ||
Index | 11 | ||
Einführung | 12 | ||
Über Java | 12 | ||
Über dieses Buch | 14 | ||
Wie dieses Buch organisiert ist | 15 | ||
Danksagung | 17 | ||
1 Den Arbeitsplatz einrichten | 18 | ||
1.1 Java installieren | 19 | ||
1.2 Eine IDE installieren | 19 | ||
1.2.1 BlueJ | 20 | ||
1.2.2 NetBeans | 20 | ||
1.2.3 Eclipse | 22 | ||
1.3 JUnit | 24 | ||
1.3.1 BlueJ | 25 | ||
1.3.2 NetBeans | 26 | ||
1.3.3 Eclipse | 26 | ||
1.4 Fremdsoftware nutzen | 26 | ||
1.4.1 Eclipse | 27 | ||
1.4.2 NetBeans | 27 | ||
1.4.3 BlueJ | 27 | ||
2 Grundlagen I – von Objekten und Klassen | 28 | ||
2.1 Kurze Geschichte der objektorientierten Programmierung | 29 | ||
2.1.1 Simula 67 | 29 | ||
2.1.2 Smalltalk | 31 | ||
2.1.3 C++ | 33 | ||
2.1.4 Eiffel | 33 | ||
2.1.5 Java | 34 | ||
2.2 Objekte und Objekteigenschaften | 36 | ||
2.2.1 Felder | 37 | ||
2.2.2 Methoden | 37 | ||
2.2.3 Allgemeine Objekteigenschaften | 40 | ||
2.2.4 Objekterzeugung | 40 | ||
2.2.5 Objektzerstörung | 42 | ||
2.3 Typen | 44 | ||
2.3.1 Primitive Datentypen | 45 | ||
2.3.2 Interfaces und Klassen | 45 | ||
2.3.3 Innere Typen | 46 | ||
2.3.4 Typprüfung und Typumwandlungen | 47 | ||
2.3.5 Generische Typen | 47 | ||
2.4 Klassen | 50 | ||
2.4.1 Instanzenfelder und -methoden | 50 | ||
2.4.2 Klassenfelder und -methoden | 52 | ||
2.4.3 Abstrakte Klassen | 54 | ||
2.4.4 Innere Klassen | 55 | ||
2.4.5 Anonyme Klassen | 56 | ||
2.4.6 Die Metaklasse | 57 | ||
2.5 Vererbung | 58 | ||
2.5.1 Vererbung zwischen Typen | 58 | ||
2.5.2 Vererbung zwischen Klassen | 60 | ||
2.5.3 Polymorphie | 61 | ||
2.6 Grenzen der objektorientierten Technologie | 62 | ||
2.7 Die Beispielanwendung | 63 | ||
2.7.1 Der Dashboard-Programmrahmen | 63 | ||
2.7.2 Die abstrakte Klasse DashboardApplication | 67 | ||
2.7.3 Das Interface IWidget | 71 | ||
2.7.4 Die Klasse DashboardException | 75 | ||
2.7.5 Die Applikation Calc | 75 | ||
2.7.6 Die Applikation Clock | 77 | ||
2.7.7 Die Applikation MessageBoard | 77 | ||
2.7.8 Die Applikation Radio | 78 | ||
2.7.9 Interne Klassen des jDashboard | 79 | ||
2.7.10 Der Quellcode | 81 | ||
3 Java – die Sprache | 82 | ||
3.1 Programmaufbau | 83 | ||
3.1.1 Interfaces | 83 | ||
3.1.2 Klassen | 84 | ||
3.2 Felddefinition | 88 | ||
3.2.1 Skalare Felder | 88 | ||
3.2.2 Arrays | 89 | ||
3.2.3 Statische Felder | 90 | ||
3.2.4 Konstanten | 90 | ||
3.3 Enumerationen | 91 | ||
3.4 Methodendeklaration | 93 | ||
3.4.1 Statische Methoden | 94 | ||
3.4.2 Instanzenmethoden | 95 | ||
3.4.3 Variablendeklaration | 96 | ||
3.5 Zuweisungen und Konversionen | 97 | ||
3.5.1 Literale | 98 | ||
3.5.2 Operatoren | 99 | ||
3.5.3 Typumwandlung und Nullwerte | 102 | ||
3.6 Methodenaufrufe | 103 | ||
3.6.1 Instanzenmethoden | 103 | ||
3.6.2 Statische Methoden | 103 | ||
3.7 Objekterzeugung | 104 | ||
3.8 Kontrollstrukturen | 104 | ||
3.8.1 Anweisungen | 104 | ||
3.8.2 Blöcke und statische Blöcke | 104 | ||
3.8.3 Bedingte Ausführung | 105 | ||
3.8.4 Schleifen | 107 | ||
3.8.5 continue und break | 110 | ||
3.8.6 Ausnahmeverarbeitung | 111 | ||
3.8.7 Assertions | 114 | ||
3.9 Modularität | 115 | ||
3.9.1 Die Package-Deklaration | 115 | ||
3.9.2 Importe | 116 | ||
3.9.3 Sichtbarkeit erweitern und einschränken | 118 | ||
3.10 Kommentare | 119 | ||
3.11 Beipiel: Die Prozessoreinheit des Taschenrechners | 120 | ||
3.12 Eine Klasse testen | 127 | ||
3.12.1 Interaktive Tests mit BlueJ | 128 | ||
3.12.2 JUnit- Tests erstellen | 128 | ||
4 Kernklassen der JRE | 132 | ||
4.1 Das Package java.lang | 133 | ||
4.1.1 Zeichen und Zeichenketten | 134 | ||
4.1.2 Systemanbindung | 138 | ||
4.2 Das Package java.util | 140 | ||
4.2.1 Arrays und Kollektionen | 140 | ||
4.2.2 Zuordnungstabellen | 146 | ||
4.2.3 Eigenschaftstabellen | 150 | ||
4.2.4 Datum und Zeit | 151 | ||
4.2.5 Reguläre Ausdrücke | 155 | ||
5 Fortgeschrittene Techniken | 158 | ||
5.1 Nebenläufigkeit | 159 | ||
5.1.1 Threads | 159 | ||
5.1.2 Sperren | 164 | ||
5.1.3 Prozesse synchronisieren | 167 | ||
5.1.4 Probleme mit der Nebenläufigkeit | 168 | ||
5.1.5 java.util.concurrent | 170 | ||
5.2 ClassLoader und Classpath | 172 | ||
5.2.1 Die Standardklassenlader | 172 | ||
5.2.2 Kontextklassenlader | 173 | ||
5.2.3 Beispiel | 174 | ||
5.3 Skripte | 176 | ||
5.3.1 Skriptsprachenunterstützung in Java | 176 | ||
5.3.2 ScriptManager und ScriptEngine | 177 | ||
5.3.3 Kontext und Variablenbindung | 177 | ||
5.3.4 Sicherheitsfragen | 178 | ||
5.3.5 Beispiel | 178 | ||
5.4 Annotationen | 181 | ||
5.4.1 Compiler-Annotation | 182 | ||
5.4.2 Eigene Annotationstypen | 183 | ||
5.5 Java Reflection | 184 | ||
5.6 Sicherheit | 188 | ||
5.6.1 Der Security-Manager | 188 | ||
5.6.2 Policy-Dateien | 189 | ||
5.6.3 Zugriffsrechte | 190 | ||
5.6.4 Beispiel: ein eigener Security-Manager | 191 | ||
5.6.5 Erweiterte Sicherheitsfunktionen | 193 | ||
6 Grundlagen II – Entwurfsmuster | 194 | ||
6.1 Fabrikmethode und abstrakte Fabrik | 195 | ||
6.2 Einzelgänger | 196 | ||
6.3 Beobachter | 197 | ||
6.4 Strategie | 200 | ||
6.5 Model- Viewer-Controller | 202 | ||
6.6 Kommando | 203 | ||
6.7 Memento | 204 | ||
7 Benutzeroberflächen | 206 | ||
7.1 AWT und Swing | 206 | ||
7.1.1 Architektur | 207 | ||
7.1.2 AWT-Komponenten | 208 | ||
7.1.3 Swing-Komponenten | 210 | ||
7.1.4 Behälter | 213 | ||
7.1.5 Layouts | 226 | ||
7.1.6 Anzeigeelemente | 227 | ||
7.1.7 Einfache Bedienelemente | 228 | ||
7.1.8 Textverarbeitung | 236 | ||
7.1.9 Farb- und Dateiauswahl | 239 | ||
7.1.10 Modelle | 240 | ||
7.1.11 Swing und Nebenläufigkeit | 241 | ||
7.1.12 Ereignisse | 245 | ||
7.1.13 Tabellen und Bäume | 259 | ||
7.1.14 Grafik | 271 | ||
7.1.15 Lasst Roboter arbeiten! | 284 | ||
7.1.16 Look&Feel | 287 | ||
7.2 Alternative Architekturen | 294 | ||
7.3 Dynamische Techniken | 295 | ||
7.3.1 XML-Skripte | 296 | ||
7.3.2 Skriptsprachen | 297 | ||
7.4 Werkzeuge | 299 | ||
8 Multimedia | 302 | ||
8.1 Ton | 302 | ||
8.1.1 MIDI | 302 | ||
8.1.2 Audio | 304 | ||
8.2 Sprache | 307 | ||
8.3 Weitere Multimedia-Möglichkeiten | 309 | ||
9 Desktop-Integration | 310 | ||
9.1 Druckerunterstützung | 311 | ||
9.2 Peripheriegeräte | 312 | ||
9.2.1 Scanner und Kameras | 312 | ||
9.2.2 Serielle und parallele Schnittstelle | 314 | ||
9.2.3 USB | 315 | ||
9.2.4 Andere Peripheriegeräte | 315 | ||
9.3 Das Java Native Interface | 317 | ||
9.4 Systemsoftware einbinden | 319 | ||
10 Persistenz | 322 | ||
10.1 Dateien und Dateisysteme | 323 | ||
10.1.1 Dateiverwaltung | 323 | ||
10.1.2 Dateizugriff | 326 | ||
10.2 Serialisierung | 332 | ||
10.3 XML- Verarbeitung | 334 | ||
10.3.1 XML-Serialisierung | 334 | ||
10.3.2 JAXB | 335 | ||
10.3.3 SAX | 340 | ||
10.3.4 DOM | 341 | ||
10.3.5 StAX | 343 | ||
10.4 Datenbanken | 354 | ||
10.4.1 Das relationale Modell | 355 | ||
10.4.2 SQL | 358 | ||
10.4.3 Transaktionen | 384 | ||
10.5 Objekte und Relationen | 385 | ||
10.5.1 Objektrelationale Anpassungsschwierigkeiten | 386 | ||
10.5.2 Objektrelationale Brücken | 387 | ||
10.5.3 Das Java Persistence API | 389 | ||
10.5.4 Schlussbemerkung | 394 | ||
11 Verteilte Anwendungen | 396 | ||
11.1 Webservices in Java | 397 | ||
11.2 Webservice-Abfrage | 397 | ||
11.3 Webservice-Server | 405 | ||
11.3.1 Beispiel: ein Nachrichten-Server | 405 | ||
11.3.2 Webservice-Programmierung | 407 | ||
11.3.3 Beispiel: ein Nachrichten-Client | 407 | ||
11.4 Andere Kommunikationsoptionen | 424 | ||
11.4.1 RMI | 424 | ||
11.4.2 CORBA | 427 | ||
12 Werkzeuge | 428 | ||
12.1 Standardwerkzeuge | 428 | ||
12.1.1 Die Java Virtual Machine | 428 | ||
12.1.2 Der Java Compiler | 430 | ||
12.1.3 JAR-Dateien | 434 | ||
12.1.4 Dokumentationen erstellen | 435 | ||
12.2 Programmentwicklung | 436 | ||
12.2.1 Programme testen | 436 | ||
12.2.2 Fehlersuche | 440 | ||
12.2.3 Tuning | 441 | ||
12.2.4 Qualitätssicherung | 442 | ||
12.2.5 Programme internationalisieren | 444 | ||
12.2.6 Code-Obfuskation | 448 | ||
13 Ausblick | 450 | ||
Bibliografie | 454 | ||
Index | 458 | ||
! | 458 | ||
A | 458 | ||
B | 459 | ||
C | 460 | ||
D | 461 | ||
E | 462 | ||
F | 462 | ||
G | 463 | ||
H | 464 | ||
I | 464 | ||
J | 465 | ||
K | 467 | ||
L | 468 | ||
M | 468 | ||
N | 469 | ||
O | 469 | ||
P | 470 | ||
Q | 471 | ||
R | 471 | ||
S | 472 | ||
T | 474 | ||
U | 475 | ||
V | 475 | ||
W | 476 | ||
X | 476 | ||
Y | 476 | ||
Z | 476 |