Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Danksagung
17
1 Einführung
19
1.1 Was bedeutet Programmierung?
20
1.1.1 Von den Anfängen bis heute
20
1.1.2 Wozu überhaupt programmieren?
21
1.1.3 Hilfsmittel für den Programmentwurf
22
1.1.4 Von der Idee zum Programm
24
1.1.5 Arten von Programmiersprachen
29
1.2 Java
35
1.2.1 Die Entstehungsgeschichte von Java
36
1.2.2 Merkmale von Java
37
1.2.3 Installation von Java
40
1.3 Ein erstes Java-Programm
46
1.3.1 Die Arbeitsumgebung vorbereiten
47
1.3.2 Wie sind Java-Programme aufgebaut?
48
1.3.3 Schritt für Schritt zum ersten Programm
51
1.3.4 Single-File-Source-Code-Programme
60
1.4 Übungsaufgaben
60
1.5 Ausblick
67
2 Grundbausteine eines Java-Programms
69
2.1 Bezeichner und Schlüsselwörter
69
2.2 Kommentare
71
2.3 Variablen und Datentypen
72
2.3.1 Namenskonventionen für Variablen
74
2.3.2 Wertzuweisung
75
2.3.3 Die primitiven Datentypen im Einzelnen
76
2.3.4 Praxisbeispiel 1 zu Variablen
78
2.3.5 Ein häufiger Fehler bei der Variablendeklaration
83
2.3.6 Praxisbeispiel 2 zu Variablen
84
2.3.7 Der Datentyp »String«
88
2.3.8 Der Dialog mit dem Anwender
89
2.3.9 Übungsaufgaben
93
2.4 Operatoren und Ausdrücke
95
2.4.1 Der Zuweisungsoperator und der Cast-Operator
95
2.4.2 Vergleiche und Bedingungen
97
2.4.3 Arithmetische Operatoren
98
2.4.4 Priorität
101
2.4.5 Logische Operatoren
103
2.4.6 Sonstige Operatoren
104
2.5 Übungsaufgaben
105
2.6 Ausblick
107
3 Kontrollstrukturen
109
3.1 Anweisungsfolge (Sequenz)
109
3.2 Auswahlstrukturen (Selektionen)
110
3.2.1 Zweiseitige Auswahlstruktur (»if«-Anweisung)
111
3.2.2 Übungsaufgaben zur »if«-Anweisung
118
3.2.3 Mehrseitige Auswahlstruktur (»switch-case«-Anweisung)
119
3.2.4 Übungsaufgabe zur »switch-case«-Anweisung
125
3.3 Wiederholungsstrukturen (Schleifen oder Iterationen)
125
3.3.1 Die »while«-Schleife
126
3.3.2 Die »do«-Schleife
127
3.3.3 Die »for«-Schleife
128
3.3.4 Sprunganweisungen
129
3.3.5 Übungsaufgaben zu Schleifen
130
3.4 Auswirkungen auf Variablen
133
3.4.1 Gültigkeitsbereiche
134
3.4.2 Namenskonflikte
135
3.4.3 Lebensdauer
135
3.5 Ausblick
136
4 Einführung in Eclipse
137
4.1 Die Entwicklungsumgebung Eclipse
137
4.1.1 Installation von Eclipse
138
4.1.2 Eclipse starten
141
4.1.3 Ein bestehendes Projekt in Eclipse öffnen
144
4.2 Erste Schritte mit Eclipse
147
4.2.1 Ein neues Projekt erstellen
147
4.2.2 Programm eingeben und starten
151
4.3 Fehlersuche mit Eclipse
160
4.3.1 Fehlersuche ohne Hilfsmittel
162
4.3.2 Haltepunkte (Breakpoints)
167
4.4 Ausblick
172
5 Klassen und Objekte
173
5.1 Die Struktur von Java-Programmen
173
5.1.1 Klassen
173
5.1.2 Attribute
175
5.1.3 Packages
175
5.1.4 Module
180
5.2 Objekte
182
5.2.1 Zugriff auf die Attribute (Datenelemente)
184
5.2.2 Wertzuweisungen bei Objekten
185
5.2.3 Gültigkeitsbereich und Lebensdauer
188
5.3 Methoden
189
5.3.1 Der Aufbau von Methoden
190
5.3.2 Der Aufruf von Methoden
190
5.3.3 Abgrenzung von Bezeichnern
195
5.4 Werte übergeben
196
5.4.1 Methoden mit Parameter
196
5.4.2 Referenztypen als Parameter
198
5.4.3 Methoden überladen
200
5.5 Ergebnisse
201
5.5.1 Methoden mit Ergebnisrückgabe
202
5.5.2 Methoden ohne Ergebnisrückgabe
204
5.6 Konstruktoren als spezielle Methoden
204
5.6.1 Konstruktoren mit Parametern
206
5.6.2 Konstruktoren verketten
207
5.7 Übungsaufgaben
209
5.8 Ausblick
213
6 Mit Klassen und Objekten arbeiten
215
6.1 Gemeinsame Nutzung
215
6.1.1 Statische Attribute
215
6.1.2 Statische Methoden
217
6.2 Zugriffsmechanismen
218
6.2.1 Unveränderliche Attribute
218
6.2.2 Datenkapselung
220
6.2.3 Getter- und Setter-Methoden
221
6.3 Beziehungen zwischen Klassen
224
6.3.1 Die Teil-Ganzes-Beziehung
225
6.3.2 Delegation
225
6.3.3 Abstammung
225
6.4 Vererbung
226
6.4.1 Schnittstelle und Implementierung
232
6.4.2 Objekte vergleichen
233
6.4.3 Abstrakte Klassen und Interfaces
235
6.4.4 Lambda-Ausdrücke
240
6.5 Klassen testen mit Unittests
242
6.6 Record-Klassen
248
6.7 Übungsaufgaben
251
6.8 Ausblick
258
7 Grundlegende Klassen
259
7.1 Die Klasse »String«
259
7.1.1 Strings erzeugen
259
7.1.2 Strings verketten (Konkatenation)
260
7.1.3 Stringlänge bestimmen und Strings vergleichen
264
7.1.4 Zeichen an einer bestimmten Position ermitteln
265
7.1.5 Umwandlung in Groß- und Kleinbuchstaben
266
7.1.6 Zahlen und Strings ineinander umwandeln
266
7.2 Die Klassen »StringBuffer« und »StringBuilder«
269
7.2.1 Ein Objekt der Klasse »StringBuilder« erzeugen
269
7.2.2 Mit »StringBuilder« arbeiten
270
7.3 Wrapper-Klassen
272
7.3.1 Wrapper-Objekte erzeugen
273
7.3.2 Rückgabe der Werte
274
7.3.3 Vereinfachter Umgang mit Wrapper-Klassen durch Autoboxing
276
7.4 Die »Date and Time API«
278
7.4.1 Technische Zeitangaben
279
7.4.2 Datum und Uhrzeit
287
7.5 Übungsaufgaben
291
7.6 Ausblick
293
8 Grafische Benutzeroberflächen
295
8.1 Einführung
295
8.1.1 JFC (Java Foundation Classes) und Swing
295
8.1.2 Grafische Oberflächen mit WindowBuilder
297
8.1.3 Ein erstes Beispielprogramm mit Programmfenster
301
8.2 Grundlegende Klassen und Methoden
312
8.2.1 JFrame, Dimension, Point und Rectangle
312
8.2.2 Die Größe einer Komponente (in Pixel) festlegen und abfragen
313
8.2.3 Die Position einer Komponente platzieren und abfragen
313
8.2.4 Randelemente eines Fensters
314
8.2.5 Darf die Größe eines Fensters verändert werden?
314
8.2.6 Sichtbarkeit von Komponenten
314
8.2.7 Ein Fenster löschen
315
8.2.8 Die Reaktion auf das Schließen des Fensters festlegen
315
8.2.9 Das Aussehen des Cursors festlegen
315
8.2.10 Den Container eines Frames ermitteln
316
8.2.11 Komponenten zu einem Container hinzufügen
317
8.3 Programmfenster mit weiteren Komponenten
317
8.3.1 Die Komponentenpalette
317
8.3.2 Standardkomponenten in einen Frame einbauen
318
8.3.3 Ein erstes Programm mit Label, TextField und Button
321
8.3.4 Label
325
8.3.5 TextField
326
8.3.6 Button
327
8.3.7 Ereignisbehandlung in aller Kürze
330
8.3.8 Programmierung der Umrechnung
332
8.3.9 Werte aus einem TextField übernehmen
332
8.3.10 Werte in TextField übertragen
333
8.3.11 Zahlenausgabe mit Formatierung
335
8.3.12 Maßnahmen zur Erhöhung des Bedienkomforts
337
8.4 Übungsaufgaben
344
8.5 Ausblick
350
9 Fehlerbehandlung mit Exceptions
351
9.1 Umgang mit Fehlern
351
9.1.1 Fehlerbehandlung ohne Exceptions
351
9.1.2 Exception als Reaktion auf Fehler
352
9.2 Mit Exceptions umgehen
354
9.2.1 Detailliertere Fehlermeldungen
356
9.2.2 Klassenhierarchie der Exceptions
357
9.3 Fortgeschrittene Ausnahmebehandlung
359
9.3.1 Interne Abläufe beim Eintreffen einer Exception
359
9.3.2 Benutzerdefinierte Exceptions
361
9.3.3 Selbst definierte Exception-Klassen
363
9.4 Übungsaufgaben
364
9.5 Ausblick
366
10 Containerklassen
367
10.1 Array
367
10.1.1 Array-Literale
373
10.1.2 Mehrdimensionale Arrays
374
10.1.3 Gezielter Zugriff auf Array-Elemente
375
10.1.4 Hilfen für den Umgang mit Arrays
379
10.1.5 Unflexible Array-Größe
380
10.2 »ArrayList« und »JList«
381
10.2.1 Die Klasse »ArrayList«
381
10.2.2 Die grafische Komponente »JList«
383
10.2.3 Die JList mit Scrollbalken ausstatten
388
10.2.4 Umgang mit markierten Einträgen
390
10.3 Collections
392
10.3.1 Listen
393
10.3.2 Mengen
394
10.3.3 Maps
398
10.4 Übungsaufgaben
400
10.5 Ausblick
404
11 Dateien
407
11.1 Die Klasse »File«
407
11.1.1 Beispielanwendung mit der Klasse »File«
409
11.1.2 Verzeichnisauswahl mit Dialog
412
11.2 Ein- und Ausgaben in Java
415
11.2.1 Ein- und Ausgabeströme
416
11.2.2 Byteorientierte Datenströme
417
11.2.3 Zeichenorientierte Datenströme
420
11.3 Die API nutzen
423
11.3.1 Daten in eine Datei schreiben
423
11.3.2 Daten aus einer Datei lesen
427
11.3.3 Die Klasse »FilterWriter«
429
11.3.4 Die Klasse »FilterReader«
431
11.3.5 Eine Textdatei verschlüsseln und entschlüsseln
433
11.4 Beispielanwendungen
436
11.4.1 Bilder in Labels und Buttons
436
11.4.2 Ein einfacher Bildbetrachter
442
11.4.3 Sounddatei abspielen
455
11.5 Übungsaufgaben
457
11.6 Ausblick
461
12 Animationen und Threads
463
12.1 Multitasking und Multithreading
463
12.1.1 Was bedeutet Multitasking?
464
12.1.2 Was sind Threads?
464
12.2 Zeitlich gesteuerte Abläufe programmieren
465
12.2.1 Eine einfache Ampelsteuerung
465
12.2.2 Die Klasse »Color«
466
12.2.3 Ein Panel zur Darstellung einer Ampel
468
12.2.4 Ampelsteuerung mit Thread
478
12.2.5 Gefahren bei der Nutzung von Threads
485
12.2.6 Bewegungsabläufe programmieren (Synchronisation)
486
12.3 Übungsaufgaben
490
12.4 Ausblick
493
13 Tabellen und Datenbanken
495
13.1 Die Klasse »JTable«
495
13.1.1 Tabelle mit konstanter Zellenzahl
496
13.1.2 Tabelle mit variabler Zeilen- und Spaltenzahl
506
13.1.3 Tabelle mit unterschiedlichen Datentypen
510
13.2 Datenbankzugriff
515
13.2.1 Datenbankzugriff mit JDBC
515
13.2.2 Aufbau der Datenbankverbindung
517
13.2.3 Datenbankabfrage
520
13.3 Übungsaufgaben
529
13.4 Ausblick
531
Anhang
533
A Materialien zum Buch
535
B Ein Programm mit Eclipse als ».jar«-File speichern
537
C Musterlösungen
541
D Literatur
549
Index
551