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
18
1.1.4 Von der Idee zum Programm
20
1.1.5 Arten von Programmiersprachen
25
1.2 Java
31
1.2.1 Entstehungsgeschichte von Java
32
1.2.2 Merkmale von Java
33
1.2.3 Installation von Java
36
1.3 Ein erstes Java-Programm
41
1.3.1 Vorbereiten der Arbeitsumgebung
42
1.3.2 Wie sind Java-Programme aufgebaut?
43
1.3.3 Schritt für Schritt zum ersten Programm
46
1.3.4 Single-File-Source-Code-Programme
55
1.4 Übungsaufgaben
55
1.5 Ausblick
62
2 Grundbausteine eines Java-Programms
63
2.1 Bezeichner und Schlüsselwörter
63
2.2 Kommentare
65
2.3 Variablen und Datentypen
66
2.3.1 Namenskonventionen für Variablen
68
2.3.2 Wertzuweisung
68
2.3.3 Die primitiven Datentypen im Einzelnen
70
2.3.4 Praxisbeispiel 1 zu Variablen
72
2.3.5 Häufiger Fehler bei der Variablendeklaration
76
2.3.6 Praxisbeispiel 2 zu Variablen
77
2.3.7 Der Datentyp »String«
81
2.3.8 Der Dialog mit dem Anwender
82
2.3.9 Übungsaufgaben
86
2.4 Operatoren und Ausdrücke
88
2.4.1 Zuweisungsoperator und Cast-Operator
88
2.4.2 Vergleiche und Bedingungen
90
2.4.3 Arithmetische Operatoren
91
2.4.4 Priorität
94
2.4.5 Logische Operatoren
96
2.4.6 Sonstige Operatoren
97
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
114
3.3 Wiederholungsstrukturen (Schleifen oder Iterationen)
115
3.3.1 Die »while«-Schleife
115
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
119
3.4 Auswirkungen auf Variablen
122
3.4.1 Gültigkeitsbereiche
122
3.4.2 Namenskonflikte
124
3.4.3 Lebensdauer
124
3.5 Ausblick
124
4 Einführung in Eclipse
126
4.1 Die Entwicklungsumgebung Eclipse
126
4.1.1 Installation von Eclipse
127
4.1.2 Eclipse starten
130
4.1.3 Ein bestehendes Projekt in Eclipse öffnen
132
4.2 Erste Schritte mit Eclipse
136
4.2.1 Ein neues Projekt erstellen
137
4.2.2 Programm eingeben und starten
140
4.3 Fehlersuche mit Eclipse
150
4.3.1 Fehlersuche ohne Hilfsmittel
151
4.3.2 Haltepunkte (Breakpoints)
157
4.4 Ausblick
162
5 Klassen und Objekte
163
5.1 Struktur von Java-Programmen
163
5.1.1 Klassen
163
5.1.2 Attribute
165
5.1.3 Packages
165
5.1.4 Module
171
5.2 Objekte
172
5.2.1 Zugriff auf die Attribute (Datenelemente)
174
5.2.2 Wertzuweisungen bei Objekten
176
5.2.3 Gültigkeitsbereich und Lebensdauer
179
5.3 Methoden
180
5.3.1 Aufbau von Methoden
180
5.3.2 Aufruf von Methoden
181
5.3.3 Abgrenzung von Bezeichnern
185
5.4 Werte übergeben
186
5.4.1 Methoden mit Parameter
186
5.4.2 Referenztypen als Parameter
188
5.4.3 Überladen von Methoden
190
5.5 Ergebnisse
191
5.5.1 Methoden mit Ergebnisrückgabe
192
5.5.2 Methoden ohne Ergebnisrückgabe
194
5.6 Konstruktoren als spezielle Methoden
194
5.6.1 Konstruktoren mit Parametern
196
5.6.2 Verketten von Konstruktoren
197
5.7 Übungsaufgaben
199
5.8 Ausblick
203
6 Mit Klassen und Objekten arbeiten
204
6.1 Gemeinsame Nutzung
204
6.1.1 Statische Attribute
204
6.1.2 Statische Methoden
206
6.2 Zugriffsmechanismen
207
6.2.1 Unveränderliche Attribute
207
6.2.2 Datenkapselung
209
6.2.3 Getter- und Setter-Methoden
210
6.3 Beziehungen zwischen Klassen
213
6.3.1 Teil-Ganzes-Beziehung
214
6.3.2 Delegation
214
6.3.3 Abstammung
214
6.4 Vererbung
215
6.4.1 Schnittstelle und Implementierung
220
6.4.2 Objekte vergleichen
221
6.4.3 Abstrakte Klassen und Interfaces
223
6.4.4 Lambda-Ausdrücke
229
6.5 Übungsaufgaben
230
6.6 Ausblick
237
7 Grundlegende Klassen
238
7.1 Die Klasse »String«
238
7.1.1 Erzeugen von Strings
238
7.1.2 Konkatenation von Strings
239
7.1.3 Stringlänge bestimmen und Strings vergleichen
242
7.1.4 Zeichen an einer bestimmten Position ermitteln
244
7.1.5 Umwandlung in Groß- und Kleinbuchstaben
244
7.1.6 Zahlen und Strings ineinander umwandeln
245
7.2 Die Klassen »StringBuffer« und »StringBuilder«
247
7.2.1 Erzeugen eines Objekts der Klasse »StringBuilder«
248
7.2.2 Mit »StringBuilder« arbeiten
249
7.3 Wrapper-Klassen
250
7.3.1 Erzeugen von Wrapper-Objekten
251
7.3.2 Rückgabe der Werte
253
7.3.3 Vereinfachter Umgang mit Wrapper-Klassen durch Autoboxing
254
7.4 Date and Time API
256
7.4.1 Technische Zeitangaben
257
7.4.2 Datum und Uhrzeit
264
7.5 Übungsaufgaben
269
7.6 Ausblick
271
8 Grafische Benutzeroberflächen
272
8.1 Einführung
272
8.1.1 JFC (Java Foundation Classes) und Swing
272
8.1.2 Grafische Oberflächen mit WindowBuilder
274
8.1.3 Erstes Beispielprogramm mit Programmfenster
279
8.2 Grundlegende Klassen und Methoden
290
8.2.1 JFrame, Dimension, Point und Rectangle
290
8.2.2 Festlegen und Abfrage der Größe einer Komponente (in Pixel)
291
8.2.3 Platzieren und Abfragen der Position einer Komponente
291
8.2.4 Randelemente eines Fensters
292
8.2.5 Veränderbarkeit der Größe eines Fensters
292
8.2.6 Sichtbarkeit von Komponenten
292
8.2.7 Löschen eines Fensters
293
8.2.8 Die Reaktion auf das Schließen des Fensters festlegen
293
8.2.9 Aussehen des Cursors festlegen
293
8.2.10 Container eines Frames ermitteln
294
8.2.11 Komponenten zu einem Container hinzufügen
294
8.3 Programmfenster mit weiteren Komponenten
295
8.3.1 Die Komponentenpalette
295
8.3.2 Standardkomponenten in einen Frame einbauen
296
8.3.3 Erstes Programm mit Label, TextField und Button
298
8.3.4 Label
302
8.3.5 TextField
303
8.3.6 Button
304
8.3.7 Ereignisbehandlung in aller Kürze
307
8.3.8 Programmierung der Umrechnung
309
8.3.9 Werte aus einem TextField übernehmen
310
8.3.10 Werte in TextField übertragen
311
8.3.11 Zahlenausgabe mit Formatierung
312
8.3.12 Maßnahmen zur Erhöhung des Bedienkomforts
314
8.4 Übungsaufgaben
321
8.5 Ausblick
328
9 Fehlerbehandlung mit Exceptions
329
9.1 Umgang mit Fehlern
329
9.1.1 Fehlerbehandlung ohne Exceptions
329
9.1.2 Exception als Reaktion auf Fehler
330
9.2 Mit Exceptions umgehen
332
9.2.1 Detailliertere Fehlermeldungen
334
9.2.2 Klassenhierarchie der Exceptions
335
9.3 Fortgeschrittene Ausnahmebehandlung
336
9.3.1 Interne Abläufe beim Eintreffen einer Exception
336
9.3.2 Benutzerdefinierte Exceptions
339
9.3.3 Selbst definierte Exception-Klassen
341
9.4 Übungsaufgaben
342
9.5 Ausblick
344
10 Containerklassen
345
10.1 Array
345
10.1.1 Array-Literale
351
10.1.2 Mehrdimensionale Arrays
352
10.1.3 Gezielter Zugriff auf Array-Elemente
353
10.1.4 Hilfen für den Umgang mit Arrays
357
10.1.5 Unflexible Array-Größe
358
10.2 »ArrayList« und »JList«
359
10.2.1 Die Klasse »ArrayList«
359
10.2.2 Die grafische Komponente »JList«
361
10.2.3 JList mit Scrollbalken ausstatten
366
10.2.4 Umgang mit markierten Einträgen
369
10.3 Collections
371
10.3.1 Listen
371
10.3.2 Mengen
372
10.3.3 Maps
377
10.4 Übungsaufgaben
378
10.5 Ausblick
383
11 Dateien
384
11.1 Die Klasse »File«
384
11.1.1 Beispielanwendung mit der Klasse »File«
386
11.1.2 Verzeichnisauswahl mit Dialog
389
11.2 Ein- und Ausgaben in Java
393
11.2.1 Ein- und Ausgabeströme
393
11.2.2 Byteorientierte Datenströme
394
11.2.3 Zeichenorientierte Datenströme
397
11.3 Die API nutzen
400
11.3.1 Daten in eine Datei schreiben
400
11.3.2 Daten aus einer Datei lesen
404
11.3.3 Die Klasse »FilterWriter«
405
11.3.4 Die Klasse »FilterReader«
407
11.3.5 Textdatei verschlüsseln und entschlüsseln
410
11.4 Beispielanwendungen
412
11.4.1 Bilder in Labels und Buttons
413
11.4.2 Ein einfacher Bildbetrachter
419
11.4.3 Sounddatei abspielen
431
11.5 Übungsaufgaben
434
11.6 Ausblick
438
12 Animationen und Threads
439
12.1 Multitasking und Multithreading
439
12.1.1 Was bedeutet Multitasking?
440
12.1.2 Was sind Threads?
440
12.2 Zeitlich gesteuerte Abläufe programmieren
441
12.2.1 Eine einfache Ampelsteuerung
441
12.2.2 Die Klasse »Color«
442
12.2.3 Ein Panel zur Darstellung einer Ampel
444
12.2.4 Ampelsteuerung mit Thread
454
12.2.5 Gefahren bei der Nutzung von Threads
461
12.2.6 Bewegungsabläufe programmieren (Synchronisation)
461
12.3 Übungsaufgaben
466
12.4 Ausblick
469
13 Tabellen und Datenbanken
470
13.1 Die Klasse »JTable«
470
13.1.1 Tabelle mit konstanter Zellenzahl
471
13.1.2 Tabelle mit variabler Zeilen- und Spaltenzahl
481
13.1.3 Tabelle mit unterschiedlichen Datentypen
484
13.2 Datenbankzugriff
490
13.2.1 Datenbankzugriff mit JDBC
490
13.2.2 Aufbau der Datenbankverbindung
492
13.2.3 Datenbankabfrage
495
13.3 Übungsaufgaben
503
13.4 Ausblick
505
Anhang
507
A Materialien zum Buch
508
B Ein Programm mit Eclipse als ».jar«-File speichern
510
C Musterlösungen
513
D Literatur
520
Index
521