Programmieren in Java 1.5 (eBook)
XX, 327 Seiten
Springer Berlin (Verlag)
978-3-540-27549-7 (ISBN)
Die Autoren geben eine kompakte und fundierte Einführung in die objektorientierte Programmierung mittels Java. Im Zentrum stehen dabei die Vermittlung grundlegender Programmierfertigkeiten, also der Entwurf von Algorithmen und Datenstrukturen, und ein effizienter, praxisbezogener Umgang mit den objektorientierten Sprachmitteln von Java. Insbesondere werden auch die wesentlichen Neuerungen der Java-Version 1.5 vorgestellt.
Die Lösungen zu den im Buch gestellten Multiple-Choice- und Programmieraufgaben können von der mitgelieferten Software JEEE interaktiv und mit hoher Präzision ausgewertet werden und ermöglichen somit eine sehr effiziente Aneignung der Sprachkonstrukte von Java. Dabei wird insbesondere Wert auf hohe Qualität des Quelltextes und die Erfüllung struktureller und funktioneller Anforderungen gelegt. Die beiliegende CD-ROM enthält zudem eine HTML-Version des Buches, das Java-System J2SDK, die Java-Entwicklungsumgebung Eclipse und den WWW-Browser Mozilla.
Jürgen Wolff v. Gudenberg, Studium der Mathematik in Karlsruhe, Promotion 1980, ist seit 1990 Professor am Lehrstuhl für Programmiersprachen und Programmiermethodik der Universität Würzburg. Er ist Autor mehrerer Bücher über unterschiedliche Programmierkonzepte und -sprachen.
Gregor Fischer, Studium der Informatik in Würzburg, Diplom 2002, arbeitet als wiss. Mitarbeiter an der Universität Würzburg und hat wesentliche Teile der Software für JOP entwickelt.
Jürgen Wolff v. Gudenberg, Studium der Mathematik in Karlsruhe, Promotion 1980, ist seit 1990 Professor am Lehrstuhl für Programmiersprachen und Programmiermethodik der Universität Würzburg. Er ist Autor mehrerer Bücher über unterschiedliche Programmierkonzepte und -sprachen. Gregor Fischer, Studium der Informatik in Würzburg, Diplom 2002, arbeitet als wiss. Mitarbeiter an der Universität Würzburg und hat wesentliche Teile der Software für JOP entwickelt.
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
Kapitel 6 Entwurf von weiterverwertbaren Klassen (S. 173-174)
Ziel der Programmentwicklung und insbesondere des objektorientierten Ansatzes ist es, allgemeine, wiederverwendbare Bausteine zu schaffen und diese mit wenig Aufwand an neue spezielle Aufgaben anzupassen. In diesem Sinn sollten folgende Programmiermuster oder -vorgehensweisen realisierbar sein:
1. Passe eine allgemein gehaltene Klasse einer neuen, speziellen Aufgabe an.
• Definiere dazu eine neue Klasse als Erweiterung einer vorhandenen
- durch Hinzufügen neuer Attribute und Methoden,
- durch Verfeinern der angegebenen allgemeinen Methoden.
• Beispielsweise kann eine PopCD als Spezialisierung einer allgemeinen CD-Klasse aufgefasst werden. Ein Methode zum zufälligen Abspielen der Einzeltitel kommt hinzu.
2. Definiere andererseits eine neue Klasse, die gemeinsame Komponenten mehrerer anderer Klassen aufnimmt und erkläre die bestehenden Klassen als Spezialfälle.
• Im Beispiel wird eine Generalisierung172 einer CD und einer MC zu dem Begriff Musikmedium durchgeführt.
3. Klassifiziere die auftretenden Klassen so, dass Gemeinsamkeiten zusammengefasst werden. Bilde Hierarchien.
• Die Musikmedien in unserem Beispiel bilden eine Hierarchie.
• Formuliere, um die Wiederverwendbarkeit zu erhöhen, gegebenenfalls
abstrakte Klassen, von denen keine Objekte existieren.
4. Lasse zu, dass ein Objekt während der Laufzeit des Programms verschiedenen (in Beziehung zueinander stehenden) Klassen angehören kann und sich immer entsprechend verhält.Wir bemühen das Beispiel eines allgemeinen Audio Abspielgerätes, welches wahlweise als Discman oder Walkman auftritt. Es liegt also ein Fall von Polymorphie vor.Um die Wartung des Programms zu erleichtern, ist es bei all diesen Tätigkeiten eminent wichtig, dass der bereits existierende Quelltext nicht verändert wird.Das Vorgehen bei der Programmierung und die genaue Syntax beruht auf einer Erweiterung1 von Klassen.
Erscheint lt. Verlag | 3.12.2005 |
---|---|
Reihe/Serie | Xpert.press | Xpert.press |
Zusatzinfo | XX, 327 S. 62 Abb. |
Verlagsort | Berlin |
Sprache | deutsch |
Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► Java |
Mathematik / Informatik ► Informatik ► Software Entwicklung | |
Schlagworte | Abstrakte Klasse • Algorithmen • Attribut • Browser • Datentyp • Datentypen • Eclipse • Entwurf • Exceptions • Java • Klasse • Klassen • Methode • Methoden • objektorientiert • Objektorientierte Programmierung • Polymorphie • Vererbung |
ISBN-10 | 3-540-27549-5 / 3540275495 |
ISBN-13 | 978-3-540-27549-7 / 9783540275497 |
Haben Sie eine Frage zum Produkt? |
Größe: 4,0 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich