Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Danksagung
14
1 Einführung
15
1.1 Was bedeutet Programmierung?
16
1.1.1 Von den Anfängen bis heute
16
1.1.2 Wozu überhaupt programmieren?
17
1.1.3 Hilfsmittel für den Programmentwurf
19
1.1.4 Von der Idee zum Programm
21
1.1.5 Arten von Programmiersprachen
25
1.2 Java
30
1.2.1 Entstehungsgeschichte von Java
31
1.2.2 Merkmale von Java
32
1.2.3 Installation von Java
35
1.3 Ein erstes Java-Programm
39
1.3.1 Vorbereiten der Arbeitsumgebung
40
1.3.2 Wie sind Java-Programme aufgebaut?
41
1.3.3 Schritt für Schritt zum ersten Programm
43
1.4 Übungsaufgaben
52
1.5 Ausblick
59
2 Grundbausteine eines JavaProgramms
60
2.1 Bezeichner und Schlüsselwörter
60
2.2 Kommentare
62
2.3 Variablen und Datentypen
63
2.3.1 Namenskonventionen für Variablen
65
2.3.2 Wertzuweisung
66
2.3.3 Die primitiven Datentypen im Einzelnen
66
2.3.4 Praxisbeispiel 1 zu Variablen
68
2.3.5 Häufiger Fehler bei der Variablendeklaration
73
2.3.6 Praxisbeispiel 2 zu Variablen
74
2.3.7 Der Datentyp »String«
79
2.3.8 Der Dialog mit dem Anwender
80
2.3.9 Übungsaufgaben
84
2.4 Operatoren und Ausdrücke
86
2.4.1 Zuweisungsoperator und Cast-Operator
87
2.4.2 Vergleiche und Bedingungen
88
2.4.3 Arithmetische Operatoren
90
2.4.4 Priorität
92
2.4.5 Logische Operatoren
95
2.4.6 Sonstige Operatoren
96
2.5 Übungsaufgaben
97
2.6 Ausblick
100
3 Kontrollstrukturen
101
3.1 Anweisungsfolge (Sequenz)
101
3.2 Auswahlstrukturen (Selektionen)
102
3.2.1 Zweiseitige Auswahlstruktur (»if«-Anweisung)
103
3.2.2 Übungsaufgaben zur »if«-Anweisung
110
3.2.3 Mehrseitige Auswahlstruktur (»switch-case«-Anweisung)
111
3.2.4 Übungsaufgabe zur »switch-case«-Anweisung
115
3.3 Wiederholungsstrukturen (Schleifen oder Iterationen)
115
3.3.1 Die »while«-Schleife
116
3.3.2 Die »do«-Schleife
116
3.3.3 Die »for«-Schleife
117
3.3.4 Sprunganweisungen
118
3.3.5 Übungsaufgaben zu Schleifen
120
3.4 Auswirkungen auf Variablen
123
3.4.1 Gültigkeitsbereiche
123
3.4.2 Namenskonflikte
124
3.4.3 Lebensdauer
125
3.5 Ausblick
125
4 Einführung in Eclipse
127
4.1 Die Entwicklungsumgebung Eclipse
127
4.1.1 Installation von Eclipse
128
4.1.2 Eclipse starten
131
4.1.3 Ein bestehendes Projekt in Eclipse öffnen
132
4.2 Erste Schritte mit Eclipse
135
4.2.1 Ein neues Projekt erstellen
136
4.2.2 Programm eingeben und starten
138
4.3 Fehlersuche mit Eclipse
146
4.3.1 Fehlersuche ohne Hilfsmittel
147
4.3.2 Haltepunkte (Breakpoints)
150
4.4 Ausblick
155
5 Klassen und Objekte
156
5.1 Struktur von Java-Programmen
156
5.1.1 Klassen
156
5.1.2 Attribute
158
5.1.3 Packages
158
5.2 Objekte
163
5.2.1 Zugriff auf die Attribute (Datenelemente)
165
5.2.2 Wertzuweisungen bei Objekten
166
5.2.3 Gültigkeitsbereich und Lebensdauer
169
5.3 Methoden
170
5.3.1 Aufbau von Methoden
171
5.3.2 Aufruf von Methoden
171
5.3.3 Abgrenzung von Bezeichnern
176
5.4 Werte übergeben
177
5.4.1 Methoden mit Parameter
177
5.4.2 Referenztypen als Parameter
179
5.4.3 Überladen von Methoden
181
5.5 Ergebnisse
182
5.5.1 Methoden mit Ergebnisrückgabe
183
5.5.2 Methoden ohne Ergebnisrückgabe
185
5.6 Konstruktoren als spezielle Methoden
185
5.6.1 Konstruktoren mit Parametern
187
5.6.2 Verketten von Konstruktoren
188
5.7 Übungsaufgaben
190
5.8 Ausblick
194
6 Mit Klassen und Objekten arbeiten
195
6.1 Gemeinsame Nutzung
195
6.1.1 Statische Attribute
195
6.1.2 Statische Methoden
197
6.2 Zugriffsmechanismen
198
6.2.1 Unveränderliche Attribute
198
6.2.2 Datenkapselung
200
6.2.3 Getter- und Setter-Methoden
201
6.3 Beziehungen zwischen Klassen
203
6.3.1 Teil-Ganzes-Beziehung
204
6.3.2 Delegation
205
6.3.3 Abstammung
205
6.4 Vererbung
206
6.4.1 Schnittstelle und Implementierung
211
6.4.2 Objekte vergleichen
212
6.4.3 Abstrakte Klassen und Interfaces
214
6.5 Übungsaufgaben
215
6.6 Ausblick
222
7 Grundlegende Klassen
223
7.1 Die Klasse »String«
223
7.1.1 Erzeugen von Strings
223
7.1.2 Konkatenation von Strings
224
7.1.3 Stringlänge bestimmen und Strings vergleichen
227
7.1.4 Zeichen an einer bestimmten Position ermitteln
229
7.1.5 Umwandlung in Groß- und Kleinbuchstaben
229
7.1.6 Zahlen und Strings ineinander umwandeln
230
7.2 Die Klassen »StringBuffer« und »StringBuilder«
232
7.2.1 Erzeugen eines Objekts der Klasse »StringBuilder«
233
7.2.2 Mit »StringBuilder« arbeiten
234
7.3 Wrapper-Klassen
235
7.3.1 Erzeugen von Wrapper-Objekten
236
7.3.2 Rückgabe der Werte
237
7.3.3 Vereinfachter Umgang mit Wrapper-Klassen durch Autoboxing
239
7.4 Date & Time API
241
7.4.1 Technische Zeitangaben
242
7.4.2 Datum und Uhrzeit
250
7.5 Übungsaufgaben
254
7.6 Ausblick
256
8 Grafische Benutzeroberflächen
258
8.1 Einführung
258
8.1.1 JFC (Java Foundation Classes) und Swing
258
8.1.2 Grafische Oberflächen mit WindowBuilder
260
8.1.3 Erstes Beispielprogramm mit Programmfenster
265
8.2 Grundlegende Klassen und Methoden
274
8.2.1 JFrame, Dimension, Point und Rectangle
275
8.2.2 Festlegen und Abfrage der Größe einer Komponente (in Pixel)
275
8.2.3 Platzieren und Abfragen der Position einer Komponente
276
8.2.4 Randelemente eines Fensters
276
8.2.5 Veränderbarkeit der Größe eines Fensters
276
8.2.6 Sichtbarkeit von Komponenten
277
8.2.7 Löschen eines Fensters
277
8.2.8 Die Reaktion auf das Schließen des Fensters festlegen
277
8.2.9 Aussehen des Cursors festlegen
278
8.2.10 Container eines Frames ermitteln
278
8.2.11 Komponenten zu einem Container hinzufügen
279
8.3 Programmfenster mit weiteren Komponenten
279
8.3.1 Die Komponentenpalette
280
8.3.2 Standardkomponenten in einen Frame einbauen
281
8.3.3 Erstes Programm mit Label, TextField und Button
283
8.3.4 Label
286
8.3.5 TextField
287
8.3.6 Button
288
8.3.7 Ereignisbehandlung in aller Kürze
291
8.3.8 Programmierung der Umrechnung
293
8.3.9 Werte aus einem TextField übernehmen
293
8.3.10 Werte in ein TextField übertragen
294
8.3.11 Zahlenausgabe mit Formatierung
296
8.3.12 Maßnahmen zur Erhöhung des Bedienkomforts
298
8.4 Übungsaufgaben
305
8.5 Ausblick
311
9 Fehlerbehandlung mit Exceptions
313
9.1 Umgang mit Fehlern
313
9.1.1 Fehlerbehandlung ohne Exceptions
313
9.1.2 Exception als Reaktion auf Fehler
314
9.2 Mit Exceptions umgehen
316
9.2.1 Detailliertere Fehlermeldungen
318
9.2.2 Klassenhierarchie der Exceptions
320
9.3 Fortgeschrittene Ausnahmebehandlung
321
9.3.1 Interne Abläufe beim Eintreffen einer Exception
321
9.3.2 Benutzerdefinierte Exceptions
323
9.3.3 Selbst definierte Exception-Klassen
325
9.4 Übungsaufgaben
326
9.5 Ausblick
328
10 Containerklassen
329
10.1 Array
329
10.1.1 Array-Literale
336
10.1.2 Mehrdimensionale Arrays
336
10.1.3 Gezielter Zugriff auf Array-Elemente
338
10.1.4 Hilfen für den Umgang mit Arrays
341
10.1.5 Unflexible Array-Größe
342
10.2 »ArrayList« und »JList«
343
10.2.1 Die Klasse »ArrayList«
343
10.2.2 Die grafische Komponente »JList«
346
10.2.3 JList mit Scrollbalken ausstatten
350
10.2.4 Umgang mit markierten Einträgen
353
10.3 Übungsaufgaben
355
10.4 Ausblick
359
11 Dateien
360
11.1 Die Klasse »File«
360
11.1.1 Beispielanwendung mit der Klasse »File«
362
11.1.2 Verzeichnisauswahl mit Dialog
365
11.2 Ein- und Ausgaben in Java
368
11.2.1 Ein- und Ausgabeströme
369
11.2.2 Byteorientierte Datenströme
369
11.2.3 Zeichenorientierte Datenströme
372
11.3 Die API nutzen
376
11.3.1 Daten in eine Datei schreiben
376
11.3.2 Daten aus einer Datei lesen
379
11.3.3 Die Klasse »FilterWriter«
381
11.3.4 Die Klasse »FilterReader«
383
11.3.5 Textdatei verschlüsseln und entschlüsseln
385
11.4 Beispielanwendungen
389
11.4.1 Bilder in Labels und Buttons
389
11.4.2 Ein einfacher Bildbetrachter
395
11.4.3 Sounddatei abspielen
405
11.5 Übungsaufgaben
407
11.6 Ausblick
411
12 Zeichnen
412
12.1 In Komponenten zeichnen
412
12.1.1 Grundlagen der Grafikausgabe
412
12.1.2 Panel-Komponente mit verändertem Aussehen
414
12.1.3 Zeichnen in Standardkomponenten
419
12.2 Farben verwenden
439
12.2.1 Die Klasse »Color«
439
12.2.2 Ein Farbauswahldialog für den Anwender
442
12.3 Auswerten von Mausereignissen
443
12.3.1 Listener zur Erfassung von Mausereignissen
445
12.3.2 »MouseEvent« und »MouseWheelEvent«
447
12.3.3 Mauskoordinaten anzeigen
448
12.3.4 Die Maus als Zeichengerät
450
12.3.5 Die Klasse »Font«
453
12.4 Übungsaufgaben
454
12.5 Ausblick
456
13 Animationen und Threads
457
13.1 Multitasking und Multithreading
457
13.1.1 Was bedeutet Multitasking?
458
13.1.2 Was sind Threads?
458
13.2 Zeitlich gesteuerte Abläufe programmieren
459
13.2.1 Eine einfache Ampelsteuerung
459
13.2.2 Ampelsteuerung mit Thread
466
13.2.3 Gefahren bei der Nutzung von Threads
473
13.2.4 Bewegungsabläufe programmieren (Synchronisation)
474
13.3 Übungsaufgaben
478
13.4 Ausblick
481
14 Tabellen und Datenbanken
482
14.1 Die Klasse »JTable«
482
14.1.1 Tabelle mit konstanter Zellenzahl
483
14.1.2 Tabelle mit variabler Zeilen- und Spaltenzahl
493
14.1.3 Tabelle mit unterschiedlichen Datentypen
497
14.2 Datenbankzugriff
503
14.2.1 Datenbankzugriff mit JDBC
503
14.2.2 Aufbau der Datenbankverbindung
504
14.2.3 Datenbankabfrage
507
14.3 Übungsaufgaben
515
14.4 Ausblick
517
Anhang
519
A Inhalt der DVD
519
B Ein Programm mit Eclipse als ».jar«-File speichern
520
C Musterlösungen
523
D Literatur
531
Index
533