Sie sind hier
E-Book

Programmieren in Java 1.5

Ein kompaktes, interaktives Tutorial

AutorGregor Fischer, Jürgen Wolff von Gudenberg
VerlagSpringer-Verlag
Erscheinungsjahr2006
Seitenanzahl327 Seiten
ISBN9783540275497
FormatPDF
KopierschutzDRM
GerätePC/MAC/eReader/Tablet
Preis6,99 EUR

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.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

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.

Inhaltsverzeichnis
Vorwort6
Inhaltsverzeichnis9
Tabellenverzeichnis16
Abbildungsverzeichnis18
Kapitel 1 Der objektorientierte Ansatz20
1.1 Ein einführendes Beispiel21
1.1.1 Aktive Objekte23
1.1.2 Klassifikation23
1.1.3 Datenkapselung25
1.2 OOP im Überblick25
1.3 Programmaufbau26
1.4 Java verwenden29
1.4.1 Umgebung30
1.4.2 Syntaxdiagramme32
1.4.3 Das Hilfspaket simple33
1.5 Gestaltung und Formatierung von Java-Quelltext33
Kapitel 2 Elementare Objekte und Ausdrücke36
2.1 Behandlung von String Objekten36
2.1.1 Zeichenketten als Objekte der Klasse StringBuffer37
2.1.2 Zeichenketten als Objekte der Klasse String38
2.1.3 Aufgaben42
2.2 Deklaration von Variablen und Konstanten43
2.3 Namen in Java46
2.4 Konstruktion von Objekten48
2.5 Aufruf von Methoden49
2.6 Einfache Ein- und Ausgabe50
2.6.1 Ausgabe mit System.out50
2.6.2 Eingabe über Kommandozeile51
2.6.3 Eingabe mit SimpleInput.in51
2.6.4 Kommandozeilen-Eingabe mit SimpleInput52
2.6.5 Ausnahmen und Fehler52
2.7 Die Zuweisung bei Wert- und Referenzsemantik53
2.7.1 Wert und Referenz53
2.8 Datentypen57
2.8.1 Klassentypen57
2.8.2 Elementare Datentypen57
2.8.3 Array-Typen58
2.9 Typ Konversion58
2.9.1 Numerische Typanpassung58
2.10 Numerische Typen60
2.10.1 Ganze Zahlen61
2.10.2 Realzahlen62
2.10.3 Operatoren im Überblick64
2.11 Syntax der Ausdrücke65
2.11.1 Typspezifische Ausdrücke65
2.11.2 Numerische Ausdrücke66
2.12 Ganzzahlige Ausdrücke67
2.12.1 Akkumulierende Zuweisungen68
2.12.2 Shift-Operationen68
2.13 Reelle Ausdrücke70
2.14 Boolesche Ausdrücke, Bedingungen72
2.15 Vergleiche von Werten und Objekten74
2.15.1 Vergleich von Zahlen74
2.15.2 Objektvergleich74
2.16 Der bedingte Ausdruck75
2.17 Die Klasse System75
2.18 Import von Klassen und Paketen76
2.18.1 Importklausel77
2.19 Auftreten von Ausnahmen79
2.19.1 Fehlerabbruch80
Kapitel 3 Vereinbarung neuer Klassen82
3.1 Überblick83
3.1.1 Attribute83
3.1.2 Methoden84
3.1.3 Konstruktoren84
3.2 Entwurf einer Klasse84
3.3 Klassendeklaration88
3.4 Attributvereinbarung90
3.5 Konstruktion von Objekten91
3.5.1 Vereinbarung von Konstruktoren92
3.6 Deklaration von Methoden94
3.7 Methodenaufruf97
3.8 Redefinition bekannter Methoden98
3.8.1 Objektvergleich99
3.9 Aufgaben mit Klassen100
3.9.1 Aufbau und Test von Programmen100
3.10 Klassenattribute101
3.11 Aufzählungen104
3.11.1 Aufzählungstypen105
3.12 Klassenmethoden107
3.13 Arrays als Datenstruktur bzw. -typ108
3.13.1 Array-Objekte und ihre Elemente109
3.13.2 Array-Typ und Vereinbarung110
3.13.3 Mehrdimensionale Arrays112
3.13.4 Kopieren von Arrays113
3.13.5 char-Felder (Zeichenketten) vs. Strings113
3.13.6 Mögliche Fehler bei Arrayzugriffen114
Kapitel 4 Algorithmen und Anweisungen116
Aufgabentyp 1: Folgenberechnung116
Aufgabentyp 2: Abbildung, Durchlauf117
Aufgabentyp 3: Akkumulation, Reduktion118
4.1 Iteration118
4.1.1 Folgenberechnung118
4.1.2 Akkumulation122
4.1.3 Durchlaufen einer Menge123
4.2 Schleifen123
4.2.1 while-Schleife124
4.2.2 do-Schleife124
4.2.3 for-Schleife125
4.2.4 Allgemeine for-Schleife127
4.3 Bedingte Anweisungen129
4.4 Funktionen131
4.5 Rekursion132
4.5.1 Rekursive Algorithmen und Funktionen132
4.5.2 Weitere Beispiele für Rekursion135
4.6 Fallunterscheidung137
4.7 Verlassen von Konstrukten140
4.7.1 return-Anweisung140
Kapitel 5 Programmieren durch Vertrag144
5.1 Abstrakte Datentypen146
5.2 Der abstrakte Datentyp Liste149
5.2.1 Eine Liste ganzer Zahlen150
5.2.2 Drei Sichten150
5.3 Ein Array als Liste151
5.3.1 Ringliste153
5.4 Eine verkettete Liste154
5.4.1 Einführung154
5.4.2 Veranschaulichung von Listenoperationen156
5.4.3 Implementierung von verketteten Listen157
5.4.4 Diskussion, Kritik159
5.5 Eine rekursive Liste159
5.5.1 Rekursive Datenstruktur159
5.5.2 Rekursive Methoden160
5.6 Datenkapselung161
5.6.1 Öffentliche und geschützte Komponenten161
5.6.2 Klasseninvarianten163
5.7 Export165
5.8 Datenkapselung in Paketen167
5.9 Innere Klassen171
5.9.1 Statische Innere Klassen172
5.10 Interfaces173
5.10.1 Interfaces als abstrakte Datentypen173
5.10.2 Listen als Interface174
5.10.3 Referenzen auf Schnittstellen.176
5.10.4 Markierungs-Interface177
5.11 Import von Interfaces und Konstanten178
5.12 Listenaufgaben178
5.12.1 Einführung178
5.12.2 Aufgaben für einfach verkettete Listen178
5.12.3 Aufgaben für doppelt verkettete Listen180
5.13 Funktionsobjekte180
5.14 Objekte anonymer Klassen183
5.15 Iterator184
5.15.1 Ein Listeniterator185
5.15.2 Ein Listeniterator im Paket186
5.15.3 Ein Listeniterator als innere Klasse187
5.15.4 Ein Listeniterator als abstrakte Klasse188
5.15.5 Iteratoren in Standardpaketen190
Kapitel 6 Entwurf von weiterverwertbaren Klassen192
6.1 Beispiele zur Vererbung193
6.1.1 Spezialisierung193
6.1.2 Generalisierung194
6.1.3 Hierarchien195
6.1.4 Polymorphie196
6.2 Erweitern von Klassen198
6.2.1 Regeln und Beispiele200
6.3 Untervertrag203
6.3.1 Unterverträge203
6.4 Die Java Klassenhierarchie204
6.4.1 Typanpassung205
6.4.2 Allgemeine Listen von Objekten206
6.5 Erweitern von Interfaces208
6.6 Polymorphie209
6.6.1 Polymorphie209
6.6.2 Dynamisches Binden210
6.6.3 Heterogene Listen211
6.7 Abstrakte Klassen213
6.8 Aufgaben zur Vererbung215
Kapitel 7 Java Standardpakete218
7.1 Hüllklassen219
7.1.1 Konversion mit Strings221
7.1.2 Hüllklasse Integer221
7.1.3 Hüllklasse Double222
7.2 Klonen von Objekten222
7.3 Datum223
7.3.1 Die Klasse Date223
7.3.2 Die Klasse GregorianCalendar224
7.4 Container225
7.4.1 Delegation225
7.4.2 Listen227
7.4.3 Mengen229
7.4.4 Schlüssellisten, Wörterbücher230
Kapitel 8 Generische Typen232
8.1 Homogene Standardcontainer233
8.1.1 Listen234
8.1.2 Schlüssellisten, Wörterbücher235
8.2 Vereinbarung von Typ-parametrisierten Containern237
8.2.1 Syntax239
8.3 Parametrisierte Typen241
8.3.1 Generizität und Vererbung241
8.3.2 Unbeschränkte Generizität244
8.3.3 Generizität und Arrays245
8.3.4 Typausprägungen246
8.4 Generische Methoden247
8.4.1 Parametrisierte Parameterlisten247
8.4.2 Typ-parametrisierte Methoden248
Kapitel 9 Ausnahmen250
9.1 Ausnahmen250
9.2 Ausnahmebehandlung251
9.3 Ausnahmeklassen253
9.3.1 Ausnahmehierarchie253
9.4 Definition eigener Ausnahmen254
9.4.1 Erweitern der Ausnahmehierarchie254
9.4.2 Auslösen von Ausnahmen254
9.5 Ausnahmen und Vererbung255
Kapitel 10 Ein- und Ausgabe256
10.1 Byteweise Ein-/Ausgabe256
10.2 Zeichenweise Ein-/Ausgabe259
10.3 Serialisierung260
10.4 Tokenizer261
10.5 SimpleInput262
Kapitel 11 Grafische Benutzeroberflächen266
11.1 Bedienung266
11.2 Programmierung267
11.3 Komponenten268
11.3.1 Grundkomponenten269
11.3.2 Container270
11.4 Ereignisbehandlung271
11.4.1 Ereignis-Hierarchie272
11.4.2 Anonyme Beobachterklassen275
11.5 Layout275
11.6 Beispiel277
Kapitel 12 Applets282
12.1 JApplet285
Kapitel 13 Eigenständige Handlungsstränge286
13.1 Konstruktion287
13.2 Monitore288
13.3 Kommunikation290
Anhang292
Anhang A Das Java2 Software Development Kit292
A.1 Installation292
A.2 Der Compiler294
A.3 Der Interpreter295
A.4 Das Werkzeug jar296
A.5 Dokumentation erzeugen mit javadoc297
Anhang B Das interaktive Lernsystem298
B.1 Das gedruckte Buch298
B.2 Das Buch als HTML-Version300
B.3 JEEE301
B.4 Die Bibliothek simple304
B.5 Entwicklungswerkzeuge306
Anhang C Syntax im Überblick308
C.1 Die gesamte Sprache308
C.2 Java 1.5 Erweiterungen322
C.2.1 Generische Typen322
C.2.2 Anweisungen325
C.2.3 Weitere Änderungen325
Anhang D Gestaltung und Formatierung von Java-Quelltext326
D.1 Struktur326
D.2 Kommentare327
D.3 Formatierung331
D.4 Deklarationen334
D.5 Anweisungen335
Anhang E Lösungen der Aufgaben338
Index344

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Menschen. Inklusiv leben

Menschen. Inklusiv leben

MENSCHEN. das magazin informiert über Themen, die das Zusammenleben von Menschen in der Gesellschaft bestimmen -und dies konsequent aus Perspektive der Betroffenen. Die Menschen, um die es geht, ...

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 53. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

Bibel für heute

Bibel für heute

BIBEL FÜR HEUTE ist die Bibellese für alle, die die tägliche Routine durchbrechen wollen: Um sich intensiver mit einem Bibeltext zu beschäftigen. Um beim Bibel lesen Einblicke in Gottes ...

DER PRAKTIKER

DER PRAKTIKER

Technische Fachzeitschrift aus der Praxis für die Praxis in allen Bereichen des Handwerks und der Industrie. “der praktiker“ ist die Fachzeitschrift für alle Bereiche der fügetechnischen ...

F- 40

F- 40

Die Flugzeuge der Bundeswehr, Die F-40 Reihe behandelt das eingesetzte Fluggerät der Bundeswehr seit dem Aufbau von Luftwaffe, Heer und Marine. Jede Ausgabe befasst sich mit der genaue Entwicklungs- ...