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

Prozessübergreifendes Projektmanagement

E-Book Prozessübergreifendes Projektmanagement
Grundlagen erfolgreicher Projekte Format: PDF

Projektmanagement ist in Zeiten von enger werdenden Projektbudgets und Projektzeitplänen eine zunehmende Herausforderung geworden. Die Autoren geben wertvolle Hilfestellungen in Krisensituationen und…

Prozessübergreifendes Projektmanagement

E-Book Prozessübergreifendes Projektmanagement
Grundlagen erfolgreicher Projekte Format: PDF

Projektmanagement ist in Zeiten von enger werdenden Projektbudgets und Projektzeitplänen eine zunehmende Herausforderung geworden. Die Autoren geben wertvolle Hilfestellungen in Krisensituationen und…

C++ mit Microsoft Visual C++ 2008

E-Book C++ mit Microsoft Visual C++ 2008
Einführung in Standard-C++, C++/CLI und die objektorientierte Windows .NET-Programmierung Format: PDF

Die Einführung in die Programmiersprachen C++, C++/CLI und die Windows-Programmierung verbindet das Buch mit Visual Studio und richtet sich damit an Anfänger wie an erfahrene C++-Programmierer. Alle…

SPS-Programmierung mit IEC 61131-3

E-Book SPS-Programmierung mit IEC 61131-3
Konzepte und Programmiersprachen, Anforderungen an Programmiersysteme, Entscheidungshilfen Format: PDF

Seit 1995 führt das Standardwerk umfassend in die Konzepte der internationalen Norm für Programmiersysteme von speicherprogrammierbaren Steuerungen ein. Den Autoren gelingt es, schwierige Inhalte…

Profikurs ABAP®

E-Book Profikurs ABAP®
Konkrete, praxisorientierte Lösungen - Tipps, Tricks und jede Menge Erfahrung Format: PDF

Professionelle und sichere Anwendungsentwicklung unter SAP R/3® ist kein Zufall, sondern eine Sache der Erfahrung. Das Resultat: Tricks und Kniffe, von denen auch Sie als ABAP® Professional…

Management von IT-Projekten

E-Book Management von IT-Projekten
Von der Planung zur Realisierung Format: PDF

Auch wenn Verfahren des Projektmanagements noch immer nicht konsequent eingesetzt werden - gerade für IT-Manager und IT-Entwickler sind Kenntnisse des Projektmanagements und seiner…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

C und Linux

E-Book C und Linux
Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen Format: PDF

Wer Erfahrungen in der C-Programmierung hat, kann die vielen Möglichkeiten von Linux kennen lernen und ausschöpfen. Dieses Buch zeigt Ihnen wie und enthält praktische Lösungen f…

Moderne C-Programmierung

E-Book Moderne C-Programmierung
Kompendium und Referenz Format: PDF

Dieses Buch wendet sich an Entwickler, die bereits über erste Erfahrungen in der Programmierung verfügen. Es fördert den effizienten, strukturierten Umgang mit C. Das vorgestellte Detailwissen hilft…

Weitere Zeitschriften

Atalanta

Atalanta

Atalanta ist die Zeitschrift der Deutschen Forschungszentrale für Schmetterlingswanderung. Im Atalanta-Magazin werden Themen behandelt wie Wanderfalterforschung, Systematik, Taxonomie und Ökologie. ...

Burgen und Schlösser

Burgen und Schlösser

aktuelle Berichte zum Thema Burgen, Schlösser, Wehrbauten, Forschungsergebnisse zur Bau- und Kunstgeschichte, Denkmalpflege und Denkmalschutz Seit ihrer Gründung 1899 gibt die Deutsche ...

Correo

Correo

 La Revista de Bayer CropScience para la Agricultura ModernaPflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und am Thema Interessierten mit umfassender ...

SPORT in BW (Württemberg)

SPORT in BW (Württemberg)

SPORT in BW (Württemberg) ist das offizielle Verbandsorgan des Württembergischen Landessportbund e.V. (WLSB) und Informationsmagazin für alle im Sport organisierten Mitglieder in Württemberg. ...

Die Großhandelskaufleute

Die Großhandelskaufleute

Prüfungs- und Praxiswissen für Großhandelskaufleute Mehr Erfolg in der Ausbildung, sicher in alle Prüfungen gehen, im Beruf jeden Tag überzeugen: „Die Großhandelskaufleute“ ist die ...

die horen

die horen

Zeitschrift für Literatur, Kunst und Kritik."...weil sie mit großer Aufmerksamkeit die internationale Literatur beobachtet und vorstellt; weil sie in der deutschen Literatur nicht nur das Neueste ...

Eishockey NEWS

Eishockey NEWS

Eishockey NEWS bringt alles über die DEL, die DEL2, die Oberliga sowie die Regionalligen und Informationen über die NHL. Dazu ausführliche Statistiken, Hintergrundberichte, Personalities ...