: Gregor Fischer, Jürgen Wolff von Gudenberg
: Programmieren in Java 1.5 Ein kompaktes, interaktives Tutorial
: Springer-Verlag
: 9783540275497
: 1
: CHF 5.50
:
: Informatik
: German
: 327
: Wasserzeichen/DRM
: PC/MAC/eReader/Tablet
: PDF

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.

 

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.

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