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
21
1.1.5 Arten von Programmiersprachen
25
1.2 Java
31
1.2.1 Entstehungsgeschichte von Java
31
1.2.2 Merkmale von Java
33
1.2.3 Installation von Java
36
1.3 Ein erstes Java-Programm
40
1.3.1 Vorbereiten der Arbeitsumgebung
41
1.3.2 Wie sind Java-Programme aufgebaut?
42
1.3.3 Schritt für Schritt zum ersten Programm
44
1.4 Übungsaufgaben
53
1.5 Ausblick
60
2 Grundbausteine eines Java-Programms
61
2.1 Bezeichner und Schlüsselwörter
61
2.2 Kommentare
63
2.3 Variablen und Datentypen
64
2.3.1 Namenskonventionen für Variablen
66
2.3.2 Wertzuweisung
67
2.3.3 Die primitiven Datentypen im Einzelnen
68
2.3.4 Praxisbeispiel 1 zu Variablen
70
2.3.5 Häufiger Fehler bei der Variablendeklaration
74
2.3.6 Praxisbeispiel 2 zu Variablen
75
2.3.7 Der Datentyp »String«
80
2.3.8 Der Dialog mit dem Anwender
81
2.3.9 Übungsaufgaben
85
2.4 Operatoren und Ausdrücke
87
2.4.1 Zuweisungsoperator und Cast-Operator
88
2.4.2 Vergleiche und Bedingungen
89
2.4.3 Arithmetische Operatoren
91
2.4.4 Priorität
93
2.4.5 Logische Operatoren
96
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
117
3.3.3 Die »for«-Schleife
118
3.3.4 Sprunganweisungen
119
3.3.5 Übungsaufgaben zu Schleifen
120
3.4 Auswirkungen auf Variablen
123
3.4.1 Gültigkeitsbereiche
124
3.4.2 Namenskonflikte
125
3.4.3 Lebensdauer
125
3.5 Ausblick
126
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
134
4.2 Erste Schritte mit Eclipse
137
4.2.1 Ein neues Projekt erstellen
137
4.2.2 Programm eingeben und starten
139
4.3 Fehlersuche mit Eclipse
147
4.3.1 Fehlersuche ohne Hilfsmittel
149
4.3.2 Haltepunkte (Breakpoints)
153
4.4 Ausblick
158
5 Klassen und Objekte
159
5.1 Struktur von Java-Programmen
159
5.1.1 Klassen
159
5.1.2 Attribute
161
5.1.3 Packages
161
5.2 Objekte
166
5.2.1 Zugriff auf die Attribute (Datenelemente)
168
5.2.2 Wertzuweisungen bei Objekten
169
5.2.3 Gültigkeitsbereich und Lebensdauer
172
5.3 Methoden
173
5.3.1 Aufbau von Methoden
173
5.3.2 Aufruf von Methoden
174
5.3.3 Abgrenzung von Bezeichnern
178
5.4 Werte übergeben
179
5.4.1 Methoden mit Parameter
180
5.4.2 Referenztypen als Parameter
182
5.4.3 Überladen von Methoden
184
5.5 Ergebnisse
185
5.5.1 Methoden mit Ergebnisrückgabe
186
5.5.2 Methoden ohne Ergebnisrückgabe
188
5.6 Konstruktoren als spezielle Methoden
188
5.6.1 Konstruktoren mit Parametern
190
5.6.2 Verketten von Konstruktoren
191
5.7 Übungsaufgaben
193
5.8 Ausblick
197
6 Mit Klassen und Objekten arbeiten
198
6.1 Gemeinsame Nutzung
198
6.1.1 Statische Attribute
198
6.1.2 Statische Methoden
200
6.2 Zugriffsmechanismen
201
6.2.1 Unveränderliche Attribute
201
6.2.2 Datenkapselung
203
6.2.3 Getter- und Setter-Methoden
204
6.3 Beziehungen zwischen Klassen
207
6.3.1 Teil-Ganzes-Beziehung
207
6.3.2 Delegation
208
6.3.3 Abstammung
208
6.4 Vererbung
209
6.4.1 Schnittstelle und Implementierung
214
6.4.2 Objekte vergleichen
215
6.4.3 Abstrakte Klassen und Interfaces
217
6.5 Übungsaufgaben
219
6.6 Ausblick
225
7 Grundlegende Klassen
226
7.1 Die Klasse »String«
226
7.1.1 Erzeugen von Strings
226
7.1.2 Konkatenation von Strings
227
7.1.3 Stringlänge bestimmen und Strings vergleichen
230
7.1.4 Zeichen an einer bestimmten Position ermitteln
232
7.1.5 Umwandlung in Groß- und Kleinbuchstaben
232
7.1.6 Zahlen und Strings ineinander umwandeln
233
7.2 Die Klassen »StringBuffer« und »StringBuilder«
235
7.2.1 Erzeugen eines Objekts der Klasse »StringBuilder«
236
7.2.2 Mit »StringBuilder« arbeiten
237
7.3 Wrapper-Klassen
238
7.3.1 Erzeugen von Wrapper-Objekten
239
7.3.2 Rückgabe der Werte
240
7.3.3 Vereinfachter Umgang mit Wrapper-Klassen durch Autoboxing
242
7.4 Date and Time API
244
7.4.1 Technische Zeitangaben
245
7.4.2 Datum und Uhrzeit
253
7.5 Übungsaufgaben
257
7.6 Ausblick
259
8 Grafische Benutzeroberflächen
261
8.1 Einführung
261
8.1.1 JFC (Java Foundation Classes) und Swing
261
8.1.2 Grafische Oberflächen mit WindowBuilder
263
8.1.3 Erstes Beispielprogramm mit Programmfenster
268
8.2 Grundlegende Klassen und Methoden
278
8.2.1 JFrame, Dimension, Point und Rectangle
278
8.2.2 Festlegen und Abfrage der Größe einer Komponente (in Pixel)
279
8.2.3 Platzieren und Abfragen der Position einer Komponente
279
8.2.4 Randelemente eines Fensters
279
8.2.5 Veränderbarkeit der Größe eines Fensters
280
8.2.6 Sichtbarkeit von Komponenten
280
8.2.7 Löschen eines Fensters
280
8.2.8 Die Reaktion auf das Schließen des Fensters festlegen
281
8.2.9 Aussehen des Cursors festlegen
281
8.2.10 Container eines Frames ermitteln
281
8.2.11 Komponenten zu einem Container hinzufügen
282
8.3 Programmfenster mit weiteren Komponenten
282
8.3.1 Die Komponentenpalette
283
8.3.2 Standardkomponenten in einen Frame einbauen
284
8.3.3 Erstes Programm mit Label, TextField und Button
286
8.3.4 Label
290
8.3.5 TextField
290
8.3.6 Button
292
8.3.7 Ereignisbehandlung in aller Kürze
294
8.3.8 Programmierung der Umrechnung
296
8.3.9 Werte aus einem TextField übernehmen
296
8.3.10 Werte in ein TextField übertragen
297
8.3.11 Zahlenausgabe mit Formatierung
299
8.3.12 Maßnahmen zur Erhöhung des Bedienkomforts
301
8.4 Übungsaufgaben
308
8.5 Ausblick
314
9 Fehlerbehandlung mit Exceptions
315
9.1 Umgang mit Fehlern
315
9.1.1 Fehlerbehandlung ohne Exceptions
315
9.1.2 Exception als Reaktion auf Fehler
316
9.2 Mit Exceptions umgehen
318
9.2.1 Detailliertere Fehlermeldungen
320
9.2.2 Klassenhierarchie der Exceptions
321
9.3 Fortgeschrittene Ausnahmebehandlung
322
9.3.1 Interne Abläufe beim Eintreffen einer Exception
322
9.3.2 Benutzerdefinierte Exceptions
325
9.3.3 Selbst definierte Exception-Klassen
327
9.4 Übungsaufgaben
328
9.5 Ausblick
330
10 Containerklassen
331
10.1 Array
331
10.1.1 Array-Literale
337
10.1.2 Mehrdimensionale Arrays
338
10.1.3 Gezielter Zugriff auf Array-Elemente
339
10.1.4 Hilfen für den Umgang mit Arrays
343
10.1.5 Unflexible Array-Größe
344
10.2 »ArrayList« und »JList«
345
10.2.1 Die Klasse »ArrayList«
345
10.2.2 Die grafische Komponente »JList«
347
10.2.3 JList mit Scrollbalken ausstatten
351
10.2.4 Umgang mit markierten Einträgen
354
10.3 Collections
356
10.3.1 Listen
356
10.3.2 Mengen
358
10.3.3 Maps
362
10.4 Lambdas
363
10.5 Übungsaufgaben
365
10.6 Ausblick
369
11 Dateien
371
11.1 Die Klasse »File«
371
11.1.1 Beispielanwendung mit der Klasse »File«
373
11.1.2 Verzeichnisauswahl mit Dialog
376
11.2 Ein- und Ausgaben in Java
379
11.2.1 Ein- und Ausgabeströme
380
11.2.2 Byteorientierte Datenströme
380
11.2.3 Zeichenorientierte Datenströme
383
11.3 Die API nutzen
386
11.3.1 Daten in eine Datei schreiben
387
11.3.2 Daten aus einer Datei lesen
390
11.3.3 Die Klasse »FilterWriter«
392
11.3.4 Die Klasse »FilterReader«
394
11.3.5 Textdatei verschlüsseln und entschlüsseln
396
11.4 Beispielanwendungen
399
11.4.1 Bilder in Labels und Buttons
400
11.4.2 Ein einfacher Bildbetrachter
406
11.4.3 Sounddatei abspielen
415
11.5 Übungsaufgaben
418
11.6 Ausblick
421
12 Zeichnen
423
12.1 In Komponenten zeichnen
423
12.1.1 Grundlagen der Grafikausgabe
423
12.1.2 Panel-Komponente mit verändertem Aussehen
425
12.1.3 Zeichnen in Standardkomponenten
430
12.2 Farben verwenden
450
12.2.1 Die Klasse »Color«
450
12.2.2 Ein Farbauswahldialog für den Anwender
452
12.3 Auswerten von Mausereignissen
454
12.3.1 Listener zur Erfassung von Mausereignissen
456
12.3.2 »MouseEvent« und »MouseWheelEvent«
458
12.3.3 Mauskoordinaten anzeigen
459
12.3.4 Die Maus als Zeichengerät
460
12.3.5 Die Klasse »Font«
464
12.4 Übungsaufgaben
465
12.5 Ausblick
468
13 Animationen und Threads
469
13.1 Multitasking und Multithreading
469
13.1.1 Was bedeutet Multitasking?
470
13.1.2 Was sind Threads?
470
13.2 Zeitlich gesteuerte Abläufe programmieren
471
13.2.1 Eine einfache Ampelsteuerung
471
13.2.2 Ampelsteuerung mit Thread
479
13.2.3 Gefahren bei der Nutzung von Threads
486
13.2.4 Bewegungsabläufe programmieren (Synchronisation)
487
13.3 Übungsaufgaben
491
13.4 Ausblick
494
14 Tabellen und Datenbanken
495
14.1 Die Klasse »JTable«
495
14.1.1 Tabelle mit konstanter Zellenzahl
496
14.1.2 Tabelle mit variabler Zeilen- und Spaltenzahl
506
14.1.3 Tabelle mit unterschiedlichen Datentypen
509
14.2 Datenbankzugriff
515
14.2.1 Datenbankzugriff mit JDBC
515
14.2.2 Aufbau der Datenbankverbindung
516
14.2.3 Datenbankabfrage
519
14.3 Übungsaufgaben
526
14.4 Ausblick
528
Anhang
530
A Inhalt der DVD
531
B Ein Programm mit Eclipse als ».jar«-File speichern
532
C ECLIPSE und WindowBuilder mit JDK9
535
D Musterlösungen
540
E Literatur
547
Index
548