Grundkurs Programmieren in Java 2 - Einführung in die Programmierung kommerzieller Systeme
von: Dietmar Ratz ua.
Carl Hanser Fachbuchverlag, 2006
ISBN: 9783446408432
Sprache: Deutsch
449 Seiten, Download: 10183 KB
Format: PDF, auch als Online-Lesen
Mehr zum Inhalt
Grundkurs Programmieren in Java 2 - Einführung in die Programmierung kommerzieller Systeme
Inhaltsverzeichnis | 6 | ||
Vorwort | 14 | ||
Kapitel 1 Einleitung | 16 | ||
1.1 Java – definitiv kein kalter Kaffee! | 17 | ||
1.2 Java f ¨ ur Fortgeschrittene – unser Konzept | 17 | ||
1.3 Was war ... | 18 | ||
1.4 ... und was kommen wird | 19 | ||
1.5 Weitere Infos und Kontakt zu den Autoren | 21 | ||
1.6 Verwendete Schreibweisen | 21 | ||
Teil I Einige Vorbereitungen | 22 | ||
Kapitel 2 Entwurfsmuster | 24 | ||
2.1 Was sind Entwurfsmuster? | 24 | ||
2.2 Das Observer-Pattern | 26 | ||
2.2.1 Zugrunde liegende Idee | 26 | ||
2.2.2 Das Objektmodell | 26 | ||
2.2.3 Beispiel-Realisierung | 27 | ||
2.2.4 Variationen des Pattern | 35 | ||
2.2.5 Zusammenfassung | 36 | ||
2.2.6 Übungsaufgaben | 36 | ||
2.3 Das Composite-Pattern | 37 | ||
2.3.1 Zugrunde liegende Idee | 37 | ||
2.3.2 Das Objektmodell | 39 | ||
2.3.3 Beispiel-Realisierung | 41 | ||
2.3.4 Variationen des Pattern | 44 | ||
2.3.5 Zusammenfassung | 46 | ||
2.3.6 Übungsaufgaben | 47 | ||
Kapitel 3 Einige wichtige Hilfsklassen | 48 | ||
3.1 Die Klasse StringBuffer | 48 | ||
3.1.1 Arbeiten mit String-Objekten | 48 | ||
3.1.2 Arbeiten mit StringBuffer-Objekten | 50 | ||
3.1.3 Übungsaufgaben | 53 | ||
3.2 DieWrapper-Klassen (Hüll-Klassen) | 54 | ||
3.2.1 Arbeiten mit ”eingepackten“ Daten | 54 | ||
3.2.2 Aufbau der Wrapper-Klassen | 55 | ||
3.2.3 Ein Anwendungsbeispiel | 58 | ||
3.2.4 Automatische Typwandlung f ¨ ur die Wrapper-Klassen in Java 5.0 | 59 | ||
3.2.5 Übungsaufgaben | 60 | ||
3.3 Die Klassen BigInteger und BigDecimal | 61 | ||
3.3.1 Arbeiten mit langen Ganzzahlen | 61 | ||
3.3.2 Aufbau der Klasse BigInteger | 63 | ||
3.3.3 Übungsaufgaben | 65 | ||
3.3.4 Arbeiten mit langen Gleitkommazahlen | 65 | ||
3.3.5 Aufbau der Klasse BigDecimal | 68 | ||
3.3.6 Viele Stellen von Nullstellen gef allig? | 71 | ||
3.3.7 Übungsaufgaben | 72 | ||
3.4 Die Klasse DecimalFormat | 73 | ||
3.4.1 Standard-Ausgaben in Java | 73 | ||
3.4.2 Arbeiten mit Format-Objekten | 74 | ||
3.4.3 Vereinfachte formatierte Ausgabe in Java 5.0 | 76 | ||
3.4.4 Übungsaufgaben | 77 | ||
3.5 Die Klassen Date und Calendar | 77 | ||
3.5.1 Arbeiten mit ”Zeitpunkten“ | 78 | ||
3.5.2 Auf die Pl¨atze, fertig, los! | 79 | ||
3.5.3 Spezielle Calendar-Klassen | 80 | ||
3.5.4 Und noch mal: Zeitmessung | 82 | ||
3.5.5 Übungsaufgaben | 84 | ||
3.6 Die Klassen SimpleDateFormat und DateFormat | 84 | ||
3.6.1 Arbeiten mit Format-Objekten für Datum/Zeit-Angaben | 84 | ||
3.6.2 Übungsaufgaben | 89 | ||
3.7 Die Collection-Klassen | 89 | ||
3.7.1 ”Sammlungen“ von Objekten – Der Aufbau des Interface Collection | 90 | ||
3.7.2 ”Sammlungen“ durchgehen – Der Aufbau des Interface Iterator | 92 | ||
3.7.3 Mengen | 93 | ||
3.7.4 Listen | 98 | ||
3.7.5 Übungsaufgaben | 104 | ||
3.8 Die Klasse StringTokenizer | 104 | ||
3.8.1 Übungsaufgaben | 107 | ||
Kapitel 4 Praxisbeispiele | 108 | ||
4.1 Rechnen mit rationalen Werten | 108 | ||
4.1.1 Variablen und Konstruktoren | 109 | ||
4.1.2 toString, equals und hashCode | 111 | ||
4.1.3 Die vier Grundrechenarten | 112 | ||
4.2 Wem die Stunde schlägt | 114 | ||
4.2.1 Designphase | 115 | ||
4.2.2 Modell und View | 117 | ||
4.2.3 Controller und Hauptprogramm | 118 | ||
4.2.4 Ausblick | 119 | ||
4.3 Die Türme von Hanoi | 120 | ||
4.3.1 Designphase | 121 | ||
4.3.2 Die Klasse Scheibe | 122 | ||
4.3.3 Die Klasse Stange | 123 | ||
4.3.4 Die Klasse Hanoi, erster Teil | 125 | ||
4.3.5 Der Algorithmus | 126 | ||
Teil II Grafische Oberflächen in Java | 130 | ||
Kapitel 5 Aufbau grafischer Oberflächen in Frames – von AWT nach Swing | 132 | ||
5.1 Grundsätzliches zum Aufbau grafischer Oberflächen | 132 | ||
5.2 Ein einfaches Beispiel mit dem AWT | 134 | ||
5.3 Let’s swing now! | 136 | ||
5.4 Etwas ”Fill-in“ gefällig? | 138 | ||
5.5 Die AWT- und Swing-Klassenbibliothek im Überblick | 140 | ||
5.6 Übungsaufgaben | 142 | ||
Kapitel 6 Swing-Komponenten | 144 | ||
6.1 Die abstrakte Klasse Component | 144 | ||
6.2 Die Klasse Container | 145 | ||
6.3 Die abstrakte Klasse JComponent | 146 | ||
6.4 Layout-Manager, Farben und Schriften | 148 | ||
6.4.1 Die Klasse Color | 148 | ||
6.4.2 Die Klasse Font | 150 | ||
6.4.3 Layout-Manager | 151 | ||
6.5 Einige Grundkomponenten | 158 | ||
6.5.1 Die Klasse JLabel | 158 | ||
6.5.2 Die abstrakte Klasse AbstractButton | 160 | ||
6.5.3 Die Klasse JButton | 162 | ||
6.5.4 Die Klasse JToggleButton | 164 | ||
6.5.5 Die Klasse JCheckBox | 166 | ||
6.5.6 Die Klassen JRadioButton und ButtonGroup | 167 | ||
6.5.7 Die Klasse JComboBox | 170 | ||
6.5.8 Die Klasse JList | 172 | ||
6.5.9 Die abstrakte Klasse JTextComponent | 175 | ||
6.5.10 Die Klassen JTextField und JPasswordField | 176 | ||
6.5.11 Die Klasse JTextArea | 178 | ||
6.5.12 Die Klasse JScrollPane | 180 | ||
6.5.13 Die Klasse JPanel | 183 | ||
6.6 Spezielle Container, Men¨ us und Toolbars | 185 | ||
6.6.1 Die Klasse JFrame | 185 | ||
6.6.2 Die Klasse JWindow | 186 | ||
6.6.3 Die Klasse JDialog | 186 | ||
6.6.4 Die Klasse JMenuBar | 190 | ||
6.6.5 Die Klasse JToolBar | 192 | ||
6.7 Übungsaufgaben | 195 | ||
Kapitel 7 Ereignisverarbeitung | 198 | ||
7.1 Zwei einfache Beispiele | 199 | ||
7.1.1 Zufällige Grautöne als Hintergrund | 199 | ||
7.1.2 Ein interaktiver Bilderrahmen | 202 | ||
7.2 Programmiervarianten für die Ereignisverarbeitung | 206 | ||
7.2.1 Innere Klasse als Listener-Klasse | 206 | ||
7.2.2 Anonyme Klasse als Listener-Klasse | 206 | ||
7.2.3 Container-Klasse als Listener-Klasse | 207 | ||
7.2.4 Separate Klasse als Listener-Klasse | 209 | ||
7.3 Event-Klassen und -Quellen | 210 | ||
7.4 Listener-Interfaces und Adapter-Klassen | 214 | ||
7.5 Listener-Registrierung bei den Event-Quellen | 220 | ||
7.6 Auf die Plätze, fertig, los! | 223 | ||
7.7 Übungsaufgaben | 227 | ||
Kapitel 8 Praxisbeispiele | 232 | ||
8.1 Wem die Stunde schlägt, Iteration 2 | 232 | ||
8.1.1 Eine Digitalanzeige | 232 | ||
8.1.2 Eine neue Steuerung | 234 | ||
8.1.3 Nicht aus dem Rahmen fallen! | 236 | ||
8.1.4 Zusammenfassung | 238 | ||
8.2 Body-Mass-Index | 238 | ||
8.2.1 Design und Layout | 238 | ||
8.2.2 Events und Anwendungslogik | 242 | ||
8.2.3 Das gesamte Programm im Überblick | 244 | ||
8.3 Wem die Stunde schlägt, Iteration 3 | 247 | ||
8.3.1 Design und Layout | 247 | ||
8.3.2 Wechsel des Look and feel | 250 | ||
Kapitel 9 Einige Ergänzungen zu Swing-Komponenten | 254 | ||
9.1 Zeichnen in Swing-Komponenten | 254 | ||
9.1.1 Grafische Darstellung von Komponenten | 254 | ||
9.1.2 Das Grafik-Koordinatensystem | 255 | ||
9.1.3 Die abstrakte Klasse Graphics | 256 | ||
9.1.4 Ein einfaches Zeichenprogramm | 259 | ||
9.2 Noch mehr Swing gefällig? | 262 | ||
9.3 Übungsaufgaben | 263 | ||
Kapitel 10 Applets | 266 | ||
10.1 Erstellen und Ausf ühren von Applets | 266 | ||
10.1.1 Vom Frame zum Applet am Beispiel | 266 | ||
10.1.2 Applet in HTML-Datei einbetten | 268 | ||
10.1.3 Applet über HTML-Datei ausführen | 270 | ||
10.2 Die Methoden der Klasse JApplet | 271 | ||
10.3 Zwei Beispiele | 274 | ||
10.3.1 Auf die Plätze, fertig, los! | 274 | ||
10.3.2 Punkte verbinden im Applet | 277 | ||
10.4 Details zur HTML-Einbettung | 278 | ||
10.4.1 Der Applet-Tag | 278 | ||
10.4.2 Die Methode showDocument | 281 | ||
10.5 Sicherheitseinschränkungen bei Applets | 283 | ||
10.6 Übungsaufgaben | 287 | ||
Kapitel 11 Praxisbeispiele | 290 | ||
11.1 Wem die Stunde schlägt, Iteration 4 | 290 | ||
11.1.1 Erste Schritte | 290 | ||
11.1.2 Von Kreisen und Winkeln | 294 | ||
11.1.3 Die Methode setzeBreite | 296 | ||
11.1.4 Die Methode zeichneLinie | 297 | ||
11.1.5 Zusammenfassung | 298 | ||
11.2 Wem die Stunde schlägt, Iteration 5 | 299 | ||
11.2.1 Vorbereitungen | 300 | ||
11.2.2 Layout in der Klasse SetzeDarstellung | 301 | ||
11.2.3 Vom Layout zur Anwendungslogik | 303 | ||
11.3 Wem die Stunde schlägt, Iteration 6 | 304 | ||
11.3.1 Schritt 1: Auf den Schirm | 304 | ||
11.3.2 Schritt 2: Eine Frage der Einstellung | 305 | ||
11.3.3 Schritt 3: Alles hübsch verpackt | 308 | ||
Teil III Threads, Datenströme und Netzwerk-Anwendungen | 312 | ||
Kapitel 12 Parallele Programmierung mit Threads | 314 | ||
12.1 Ein einfaches Beispiel | 314 | ||
12.2 Threads in Java | 316 | ||
12.2.1 Die Klasse Thread | 317 | ||
12.2.2 Das Interface Runnable | 321 | ||
12.2.3 Threads vorzeitig beenden | 323 | ||
12.3 Wissenswertes über Threads | 325 | ||
12.3.1 Lebenszyklus eines Threads | 325 | ||
12.3.2 Thread-Scheduling | 327 | ||
12.3.3 Dämon-Threads und Thread-Gruppen | 327 | ||
12.4 Thread-Synchronisation und -Kommunikation | 328 | ||
12.4.1 Das Leser/Schreiber-Problem | 329 | ||
12.4.2 Das Erzeuger/Verbraucher-Problem | 333 | ||
12.5 Threads in Frames und Applets | 340 | ||
12.5.1 Auf die Plätze, fertig, los! | 340 | ||
12.5.2 Spielereien | 344 | ||
12.6 Übungsaufgaben | 347 | ||
Kapitel 13 Ein- und Ausgabe über Streams | 350 | ||
13.1 Grundsätzliches zu Streams in Java | 351 | ||
13.2 Dateien und Verzeichnisse – Die Klasse File | 351 | ||
13.3 Ein- und Ausgabe über Character-Streams | 354 | ||
13.3.1 Einfache Reader- und Writer-Klassen | 355 | ||
13.3.2 Gepufferte Reader- und Writer-Klassen | 358 | ||
13.3.3 Die Klasse StreamTokenizer | 360 | ||
13.3.4 Die Klasse PrintWriter | 362 | ||
13.3.5 Die Klassen IOTools und Scanner | 364 | ||
13.4 Ein- und Ausgabe über Byte-Streams | 366 | ||
13.4.1 Einige InputStream- und OutputStream-Klassen | 367 | ||
13.4.2 Die Serialisierung und Deserialisierung von Objekten | 368 | ||
13.4.3 Die Klasse PrintStream | 371 | ||
13.5 Einige abschließende Bemerkungen | 371 | ||
13.6 Übungsaufgaben | 372 | ||
Kapitel 14 Client/Server-Programmierung in Netzwerken | 376 | ||
14.1 Wissenswertes über Netzwerk-Kommunikation | 377 | ||
14.1.1 Protokolle | 377 | ||
14.1.2 IP-Adressen | 379 | ||
14.1.3 Ports und Sockets | 380 | ||
14.2 Client/Server-Programmierung | 381 | ||
14.2.1 Die Klassen ServerSocket und Socket | 382 | ||
14.2.2 Ein einfacher Server | 384 | ||
14.2.3 Ein einfacher Client | 387 | ||
14.2.4 Ein Server für mehrere Clients | 389 | ||
14.2.5 Ein Mehrzweck-Client | 392 | ||
14.3 Wissenswertes über URLs | 394 | ||
14.3.1 Client/Server-Kommunikation über URLs | 395 | ||
14.3.2 Netzwerkverbindungen in Applets | 396 | ||
14.4 Übungsaufgaben | 397 | ||
Kapitel 15 Praxisbeispiele | 402 | ||
15.1 Wem die Stunde schlägt, Iteration 7 | 402 | ||
15.2 Wem die Stunde schlägt, Iteration 8 | 404 | ||
15.2.1 Hätten wir nur einen Socket, . . . | 404 | ||
15.2.2 Die Klasse Zeitserver | 406 | ||
15.2.3 Ein Testprogramm | 407 | ||
15.3 Wem die Stunde schlägt, Iteration 9 | 410 | ||
15.3.1 Wenn’s am schönsten ist, . . . | 410 | ||
15.3.2 Einige Vorbereitungen | 410 | ||
15.3.3 Uhrenvergleich | 412 | ||
15.3.4 Der Einstellungs-Dialog | 414 | ||
15.3.5 Zusammenfassung | 417 | ||
Teil IV Ausblick und Anhang | 418 | ||
Kapitel 16 Blick über den Tellerrand | 420 | ||
16.1 Der Vorhang fällt | 420 | ||
16.2 A fool with a tool . . . | 421 | ||
16.3 Alles umsonst? | 422 | ||
16.4 Und fachlich? | 423 | ||
16.5 Zu guter Letzt . . . | 425 | ||
Anhang A Der Umgang mit der API-Spezifikation | 426 | ||
A.1 Der Aufbau der API-Spezifikation | 426 | ||
A.2 Der praktische Einsatz der API-Spezifikation | 427 | ||
Anhang B Glossar | 432 | ||
Literaturverzeichnis | 438 | ||
Stichwortverzeichnis | 440 | ||
Mehr eBooks bei www.ciando.com | 0 |