Programmieren in Java 1.5 - Ein kompaktes, interaktives Tutorial

von: Gregor Fischer, Jürgen Wolff von Gudenberg

Springer-Verlag, 2005

ISBN: 9783540275497 , 327 Seiten

Format: PDF, OL

Kopierschutz: Wasserzeichen

Windows PC,Mac OSX für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 6,28 EUR

Mehr zum Inhalt

Programmieren in Java 1.5 - Ein kompaktes, interaktives Tutorial


 

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