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
32
1.2.1 Die 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 Die Arbeitsumgebung vorbereiten
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
54
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 Ein 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 Der Zuweisungsoperator und der 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
116
3.3 Wiederholungsstrukturen (Schleifen oder Iterationen)
117
3.3.1 Die »while«-Schleife
117
3.3.2 Die »do«-Schleife
118
3.3.3 Die »for«-Schleife
119
3.3.4 Sprunganweisungen
120
3.3.5 Übungsaufgaben zu Schleifen
121
3.4 Auswirkungen auf Variablen
124
3.4.1 Gültigkeitsbereiche
124
3.4.2 Namenskonflikte
126
3.4.3 Lebensdauer
126
3.5 Ausblick
126
4 Einführung in Eclipse
128
4.1 Die Entwicklungsumgebung Eclipse
128
4.1.1 Installation von Eclipse
129
4.1.2 Eclipse starten
132
4.1.3 Ein bestehendes Projekt in Eclipse öffnen
134
4.2 Erste Schritte mit Eclipse
138
4.2.1 Ein neues Projekt erstellen
138
4.2.2 Programm eingeben und starten
141
4.3 Fehlersuche mit Eclipse
151
4.3.1 Fehlersuche ohne Hilfsmittel
152
4.3.2 Haltepunkte (Breakpoints)
158
4.4 Ausblick
163
5 Klassen und Objekte
164
5.1 Die Struktur von Java-Programmen
164
5.1.1 Klassen
164
5.1.2 Attribute
166
5.1.3 Packages
166
5.1.4 Module
172
5.2 Objekte
173
5.2.1 Zugriff auf die Attribute (Datenelemente)
175
5.2.2 Wertzuweisungen bei Objekten
177
5.2.3 Gültigkeitsbereich und Lebensdauer
180
5.3 Methoden
181
5.3.1 Der Aufbau von Methoden
181
5.3.2 Der Aufruf von Methoden
182
5.3.3 Abgrenzung von Bezeichnern
186
5.4 Werte übergeben
187
5.4.1 Methoden mit Parameter
187
5.4.2 Referenztypen als Parameter
189
5.4.3 Methoden überladen
191
5.5 Ergebnisse
192
5.5.1 Methoden mit Ergebnisrückgabe
193
5.5.2 Methoden ohne Ergebnisrückgabe
195
5.6 Konstruktoren als spezielle Methoden
195
5.6.1 Konstruktoren mit Parametern
197
5.6.2 Konstruktoren verketten
198
5.7 Übungsaufgaben
200
5.8 Ausblick
204
6 Mit Klassen und Objekten arbeiten
205
6.1 Gemeinsame Nutzung
205
6.1.1 Statische Attribute
205
6.1.2 Statische Methoden
207
6.2 Zugriffsmechanismen
208
6.2.1 Unveränderliche Attribute
208
6.2.2 Datenkapselung
210
6.2.3 Getter- und Setter-Methoden
211
6.3 Beziehungen zwischen Klassen
214
6.3.1 Die Teil-Ganzes-Beziehung
215
6.3.2 Delegation
215
6.3.3 Abstammung
215
6.4 Vererbung
216
6.4.1 Schnittstelle und Implementierung
221
6.4.2 Objekte vergleichen
222
6.4.3 Abstrakte Klassen und Interfaces
224
6.4.4 Lambda-Ausdrücke
230
6.5 Übungsaufgaben
231
6.6 Ausblick
238
7 Grundlegende Klassen
239
7.1 Die Klasse »String«
239
7.1.1 Strings erzeugen
239
7.1.2 Strings verketten (Konkatenation)
240
7.1.3 Stringlänge bestimmen und Strings vergleichen
243
7.1.4 Zeichen an einer bestimmten Position ermitteln
245
7.1.5 Umwandlung in Groß- und Kleinbuchstaben
245
7.1.6 Zahlen und Strings ineinander umwandeln
246
7.2 Die Klassen »StringBuffer« und »StringBuilder«
248
7.2.1 Ein Objekt der Klasse »StringBuilder« erzeugen
249
7.2.2 Mit »StringBuilder« arbeiten
250
7.3 Wrapper-Klassen
251
7.3.1 Wrapper-Objekte erzeugen
252
7.3.2 Rückgabe der Werte
254
7.3.3 Vereinfachter Umgang mit Wrapper-Klassen durch Autoboxing
255
7.4 Die »Date and Time API«
257
7.4.1 Technische Zeitangaben
258
7.4.2 Datum und Uhrzeit
265
7.5 Übungsaufgaben
270
7.6 Ausblick
272
8 Grafische Benutzeroberflächen
273
8.1 Einführung
273
8.1.1 JFC (Java Foundation Classes) und Swing
273
8.1.2 Grafische Oberflächen mit WindowBuilder
275
8.1.3 Ein erstes Beispielprogramm mit Programmfenster
280
8.2 Grundlegende Klassen und Methoden
291
8.2.1 JFrame, Dimension, Point und Rectangle
291
8.2.2 Die Größe einer Komponente (in Pixel) festlegen und abfragen
292
8.2.3 Die Position einer Komponente platzieren und abfragen
292
8.2.4 Randelemente eines Fensters
293
8.2.5 Darf die Größe eines Fensters verändert werden?
293
8.2.6 Sichtbarkeit von Komponenten
293
8.2.7 Ein Fenster löschen
294
8.2.8 Die Reaktion auf das Schließen des Fensters festlegen
294
8.2.9 Das Aussehen des Cursors festlegen
294
8.2.10 Den Container eines Frames ermitteln
295
8.2.11 Komponenten zu einem Container hinzufügen
295
8.3 Programmfenster mit weiteren Komponenten
296
8.3.1 Die Komponentenpalette
296
8.3.2 Standardkomponenten in einen Frame einbauen
297
8.3.3 Ein erstes Programm mit Label, TextField und Button
299
8.3.4 Label
303
8.3.5 TextField
304
8.3.6 Button
305
8.3.7 Ereignisbehandlung in aller Kürze
308
8.3.8 Programmierung der Umrechnung
310
8.3.9 Werte aus einem TextField übernehmen
311
8.3.10 Werte in TextField übertragen
312
8.3.11 Zahlenausgabe mit Formatierung
313
8.3.12 Maßnahmen zur Erhöhung des Bedienkomforts
315
8.4 Übungsaufgaben
322
8.5 Ausblick
329
9 Fehlerbehandlung mit Exceptions
330
9.1 Umgang mit Fehlern
330
9.1.1 Fehlerbehandlung ohne Exceptions
330
9.1.2 Exception als Reaktion auf Fehler
331
9.2 Mit Exceptions umgehen
333
9.2.1 Detailliertere Fehlermeldungen
335
9.2.2 Klassenhierarchie der Exceptions
336
9.3 Fortgeschrittene Ausnahmebehandlung
337
9.3.1 Interne Abläufe beim Eintreffen einer Exception
337
9.3.2 Benutzerdefinierte Exceptions
340
9.3.3 Selbst definierte Exception-Klassen
342
9.4 Übungsaufgaben
343
9.5 Ausblick
345
10 Containerklassen
346
10.1 Array
346
10.1.1 Array-Literale
352
10.1.2 Mehrdimensionale Arrays
353
10.1.3 Gezielter Zugriff auf Array-Elemente
354
10.1.4 Hilfen für den Umgang mit Arrays
358
10.1.5 Unflexible Array-Größe
359
10.2 »ArrayList« und »JList«
360
10.2.1 Die Klasse »ArrayList«
360
10.2.2 Die grafische Komponente »JList«
363
10.2.3 Die JList mit Scrollbalken ausstatten
367
10.2.4 Umgang mit markierten Einträgen
370
10.3 Collections
372
10.3.1 Listen
372
10.3.2 Mengen
373
10.3.3 Maps
378
10.4 Übungsaufgaben
379
10.5 Ausblick
384
11 Dateien
385
11.1 Die Klasse »File«
385
11.1.1 Beispielanwendung mit der Klasse »File«
387
11.1.2 Verzeichnisauswahl mit Dialog
390
11.2 Ein- und Ausgaben in Java
393
11.2.1 Ein- und Ausgabeströme
394
11.2.2 Byteorientierte Datenströme
395
11.2.3 Zeichenorientierte Datenströme
398
11.3 Die API nutzen
401
11.3.1 Daten in eine Datei schreiben
401
11.3.2 Daten aus einer Datei lesen
405
11.3.3 Die Klasse »FilterWriter«
407
11.3.4 Die Klasse »FilterReader«
409
11.3.5 Eine Textdatei verschlüsseln und entschlüsseln
411
11.4 Beispielanwendungen
413
11.4.1 Bilder in Labels und Buttons
414
11.4.2 Ein einfacher Bildbetrachter
420
11.4.3 Sounddatei abspielen
432
11.5 Übungsaufgaben
434
11.6 Ausblick
438
12 Animationen und Threads
440
12.1 Multitasking und Multithreading
440
12.1.1 Was bedeutet Multitasking?
441
12.1.2 Was sind Threads?
441
12.2 Zeitlich gesteuerte Abläufe programmieren
442
12.2.1 Eine einfache Ampelsteuerung
442
12.2.2 Die Klasse »Color«
443
12.2.3 Ein Panel zur Darstellung einer Ampel
445
12.2.4 Ampelsteuerung mit Thread
455
12.2.5 Gefahren bei der Nutzung von Threads
462
12.2.6 Bewegungsabläufe programmieren (Synchronisation)
463
12.3 Übungsaufgaben
467
12.4 Ausblick
470
13 Tabellen und Datenbanken
471
13.1 Die Klasse »JTable«
471
13.1.1 Tabelle mit konstanter Zellenzahl
472
13.1.2 Tabelle mit variabler Zeilen- und Spaltenzahl
482
13.1.3 Tabelle mit unterschiedlichen Datentypen
485
13.2 Datenbankzugriff
491
13.2.1 Datenbankzugriff mit JDBC
491
13.2.2 Aufbau der Datenbankverbindung
493
13.2.3 Datenbankabfrage
496
13.3 Übungsaufgaben
505
13.4 Ausblick
507
Anhang
508
A Materialien zum Buch
509
B Ein Programm mit Eclipse als ».jar«-File speichern
510
C Musterlösungen
513
D Literatur
520
Index
521