Suchen und Finden
Vorwort
6
Inhaltsverzeichnis
9
Tabellenverzeichnis
16
Abbildungsverzeichnis
18
Kapitel 1 Der objektorientierte Ansatz
20
1.1 Ein einführendes Beispiel
21
1.1.1 Aktive Objekte
23
1.1.2 Klassifikation
23
1.1.3 Datenkapselung
25
1.2 OOP im Überblick
25
1.3 Programmaufbau
26
1.4 Java verwenden
29
1.4.1 Umgebung
30
1.4.2 Syntaxdiagramme
32
1.4.3 Das Hilfspaket simple
33
1.5 Gestaltung und Formatierung von Java-Quelltext
33
Kapitel 2 Elementare Objekte und Ausdrücke
36
2.1 Behandlung von String Objekten
36
2.1.1 Zeichenketten als Objekte der Klasse StringBuffer
37
2.1.2 Zeichenketten als Objekte der Klasse String
38
2.1.3 Aufgaben
42
2.2 Deklaration von Variablen und Konstanten
43
2.3 Namen in Java
46
2.4 Konstruktion von Objekten
48
2.5 Aufruf von Methoden
49
2.6 Einfache Ein- und Ausgabe
50
2.6.1 Ausgabe mit System.out
50
2.6.2 Eingabe über Kommandozeile
51
2.6.3 Eingabe mit SimpleInput.in
51
2.6.4 Kommandozeilen-Eingabe mit SimpleInput
52
2.6.5 Ausnahmen und Fehler
52
2.7 Die Zuweisung bei Wert- und Referenzsemantik
53
2.7.1 Wert und Referenz
53
2.8 Datentypen
57
2.8.1 Klassentypen
57
2.8.2 Elementare Datentypen
57
2.8.3 Array-Typen
58
2.9 Typ Konversion
58
2.9.1 Numerische Typanpassung
58
2.10 Numerische Typen
60
2.10.1 Ganze Zahlen
61
2.10.2 Realzahlen
62
2.10.3 Operatoren im Überblick
64
2.11 Syntax der Ausdrücke
65
2.11.1 Typspezifische Ausdrücke
65
2.11.2 Numerische Ausdrücke
66
2.12 Ganzzahlige Ausdrücke
67
2.12.1 Akkumulierende Zuweisungen
68
2.12.2 Shift-Operationen
68
2.13 Reelle Ausdrücke
70
2.14 Boolesche Ausdrücke, Bedingungen
72
2.15 Vergleiche von Werten und Objekten
74
2.15.1 Vergleich von Zahlen
74
2.15.2 Objektvergleich
74
2.16 Der bedingte Ausdruck
75
2.17 Die Klasse System
75
2.18 Import von Klassen und Paketen
76
2.18.1 Importklausel
77
2.19 Auftreten von Ausnahmen
79
2.19.1 Fehlerabbruch
80
Kapitel 3 Vereinbarung neuer Klassen
82
3.1 Überblick
83
3.1.1 Attribute
83
3.1.2 Methoden
84
3.1.3 Konstruktoren
84
3.2 Entwurf einer Klasse
84
3.3 Klassendeklaration
88
3.4 Attributvereinbarung
90
3.5 Konstruktion von Objekten
91
3.5.1 Vereinbarung von Konstruktoren
92
3.6 Deklaration von Methoden
94
3.7 Methodenaufruf
97
3.8 Redefinition bekannter Methoden
98
3.8.1 Objektvergleich
99
3.9 Aufgaben mit Klassen
100
3.9.1 Aufbau und Test von Programmen
100
3.10 Klassenattribute
101
3.11 Aufzählungen
104
3.11.1 Aufzählungstypen
105
3.12 Klassenmethoden
107
3.13 Arrays als Datenstruktur bzw. -typ
108
3.13.1 Array-Objekte und ihre Elemente
109
3.13.2 Array-Typ und Vereinbarung
110
3.13.3 Mehrdimensionale Arrays
112
3.13.4 Kopieren von Arrays
113
3.13.5 char-Felder (Zeichenketten) vs. Strings
113
3.13.6 Mögliche Fehler bei Arrayzugriffen
114
Kapitel 4 Algorithmen und Anweisungen
116
Aufgabentyp 1: Folgenberechnung
116
Aufgabentyp 2: Abbildung, Durchlauf
117
Aufgabentyp 3: Akkumulation, Reduktion
118
4.1 Iteration
118
4.1.1 Folgenberechnung
118
4.1.2 Akkumulation
122
4.1.3 Durchlaufen einer Menge
123
4.2 Schleifen
123
4.2.1 while-Schleife
124
4.2.2 do-Schleife
124
4.2.3 for-Schleife
125
4.2.4 Allgemeine for-Schleife
127
4.3 Bedingte Anweisungen
129
4.4 Funktionen
131
4.5 Rekursion
132
4.5.1 Rekursive Algorithmen und Funktionen
132
4.5.2 Weitere Beispiele für Rekursion
135
4.6 Fallunterscheidung
137
4.7 Verlassen von Konstrukten
140
4.7.1 return-Anweisung
140
Kapitel 5 Programmieren durch Vertrag
144
5.1 Abstrakte Datentypen
146
5.2 Der abstrakte Datentyp Liste
149
5.2.1 Eine Liste ganzer Zahlen
150
5.2.2 Drei Sichten
150
5.3 Ein Array als Liste
151
5.3.1 Ringliste
153
5.4 Eine verkettete Liste
154
5.4.1 Einführung
154
5.4.2 Veranschaulichung von Listenoperationen
156
5.4.3 Implementierung von verketteten Listen
157
5.4.4 Diskussion, Kritik
159
5.5 Eine rekursive Liste
159
5.5.1 Rekursive Datenstruktur
159
5.5.2 Rekursive Methoden
160
5.6 Datenkapselung
161
5.6.1 Öffentliche und geschützte Komponenten
161
5.6.2 Klasseninvarianten
163
5.7 Export
165
5.8 Datenkapselung in Paketen
167
5.9 Innere Klassen
171
5.9.1 Statische Innere Klassen
172
5.10 Interfaces
173
5.10.1 Interfaces als abstrakte Datentypen
173
5.10.2 Listen als Interface
174
5.10.3 Referenzen auf Schnittstellen.
176
5.10.4 Markierungs-Interface
177
5.11 Import von Interfaces und Konstanten
178
5.12 Listenaufgaben
178
5.12.1 Einführung
178
5.12.2 Aufgaben für einfach verkettete Listen
178
5.12.3 Aufgaben für doppelt verkettete Listen
180
5.13 Funktionsobjekte
180
5.14 Objekte anonymer Klassen
183
5.15 Iterator
184
5.15.1 Ein Listeniterator
185
5.15.2 Ein Listeniterator im Paket
186
5.15.3 Ein Listeniterator als innere Klasse
187
5.15.4 Ein Listeniterator als abstrakte Klasse
188
5.15.5 Iteratoren in Standardpaketen
190
Kapitel 6 Entwurf von weiterverwertbaren Klassen
192
6.1 Beispiele zur Vererbung
193
6.1.1 Spezialisierung
193
6.1.2 Generalisierung
194
6.1.3 Hierarchien
195
6.1.4 Polymorphie
196
6.2 Erweitern von Klassen
198
6.2.1 Regeln und Beispiele
200
6.3 Untervertrag
203
6.3.1 Unterverträge
203
6.4 Die Java Klassenhierarchie
204
6.4.1 Typanpassung
205
6.4.2 Allgemeine Listen von Objekten
206
6.5 Erweitern von Interfaces
208
6.6 Polymorphie
209
6.6.1 Polymorphie
209
6.6.2 Dynamisches Binden
210
6.6.3 Heterogene Listen
211
6.7 Abstrakte Klassen
213
6.8 Aufgaben zur Vererbung
215
Kapitel 7 Java Standardpakete
218
7.1 Hüllklassen
219
7.1.1 Konversion mit Strings
221
7.1.2 Hüllklasse Integer
221
7.1.3 Hüllklasse Double
222
7.2 Klonen von Objekten
222
7.3 Datum
223
7.3.1 Die Klasse Date
223
7.3.2 Die Klasse GregorianCalendar
224
7.4 Container
225
7.4.1 Delegation
225
7.4.2 Listen
227
7.4.3 Mengen
229
7.4.4 Schlüssellisten, Wörterbücher
230
Kapitel 8 Generische Typen
232
8.1 Homogene Standardcontainer
233
8.1.1 Listen
234
8.1.2 Schlüssellisten, Wörterbücher
235
8.2 Vereinbarung von Typ-parametrisierten Containern
237
8.2.1 Syntax
239
8.3 Parametrisierte Typen
241
8.3.1 Generizität und Vererbung
241
8.3.2 Unbeschränkte Generizität
244
8.3.3 Generizität und Arrays
245
8.3.4 Typausprägungen
246
8.4 Generische Methoden
247
8.4.1 Parametrisierte Parameterlisten
247
8.4.2 Typ-parametrisierte Methoden
248
Kapitel 9 Ausnahmen
250
9.1 Ausnahmen
250
9.2 Ausnahmebehandlung
251
9.3 Ausnahmeklassen
253
9.3.1 Ausnahmehierarchie
253
9.4 Definition eigener Ausnahmen
254
9.4.1 Erweitern der Ausnahmehierarchie
254
9.4.2 Auslösen von Ausnahmen
254
9.5 Ausnahmen und Vererbung
255
Kapitel 10 Ein- und Ausgabe
256
10.1 Byteweise Ein-/Ausgabe
256
10.2 Zeichenweise Ein-/Ausgabe
259
10.3 Serialisierung
260
10.4 Tokenizer
261
10.5 SimpleInput
262
Kapitel 11 Grafische Benutzeroberflächen
266
11.1 Bedienung
266
11.2 Programmierung
267
11.3 Komponenten
268
11.3.1 Grundkomponenten
269
11.3.2 Container
270
11.4 Ereignisbehandlung
271
11.4.1 Ereignis-Hierarchie
272
11.4.2 Anonyme Beobachterklassen
275
11.5 Layout
275
11.6 Beispiel
277
Kapitel 12 Applets
282
12.1 JApplet
285
Kapitel 13 Eigenständige Handlungsstränge
286
13.1 Konstruktion
287
13.2 Monitore
288
13.3 Kommunikation
290
Anhang
292
Anhang A Das Java2 Software Development Kit
292
A.1 Installation
292
A.2 Der Compiler
294
A.3 Der Interpreter
295
A.4 Das Werkzeug jar
296
A.5 Dokumentation erzeugen mit javadoc
297
Anhang B Das interaktive Lernsystem
298
B.1 Das gedruckte Buch
298
B.2 Das Buch als HTML-Version
300
B.3 JEEE
301
B.4 Die Bibliothek simple
304
B.5 Entwicklungswerkzeuge
306
Anhang C Syntax im Überblick
308
C.1 Die gesamte Sprache
308
C.2 Java 1.5 Erweiterungen
322
C.2.1 Generische Typen
322
C.2.2 Anweisungen
325
C.2.3 Weitere Änderungen
325
Anhang D Gestaltung und Formatierung von Java-Quelltext
326
D.1 Struktur
326
D.2 Kommentare
327
D.3 Formatierung
331
D.4 Deklarationen
334
D.5 Anweisungen
335
Anhang E Lösungen der Aufgaben
338
Index
344
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.