Objektorientiertes Programmieren

Ähnliche Dokumente
Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Inhaltsverzeichnis. Vorwort

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

Grundkurs Software- Entwicklung mit C++

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

Objektorientiertes Programmieren in C++

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

Objektorientierung. Helmut Herold Michael Klar Susanne Klar ^-ADDISON-WESLEY. An imprint of Pearson Education

Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21

10. Programmierungs-Phase: Objektorientierung Software Engineering

Die С ++-Programmiersprache

Grundlagen des Software Engineering

Einführung in die objektorientierte Programmierung

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Übersetzung objektorientierter Programmiersprachen

Überblick. Überblick zum weiteren Inhalt

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Programmieren 2 C++ Überblick

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Werner Achte rt DATA BECKER

Objektorientierte Programmierung mit C++ SS 2007

Software Engineering

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

Objektorientierte Systementwicklung

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung

Modellierung und Programmierung 1

Liste MI / Liste I Programmieren in C++

Lehrbuch der Objektmodellierung

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

Objektorientierte Anwendungsentwicklung

Methodische objektorientierte Softwareentwicklung

C++für Naturwissenschaftler

7. Zusammenfassung (1)

Polymorphismus 179. Function.h. #include <string>

Programmieren 2 - Java

Objektorientierte Sprachen

Überblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele

Vorlesung Datenbanken II SS 2006

Technische Akademie Esslingen Ihr Partner für Weiterbildung seit 60 Jahren! Leitung Univ.-Prof. Hon.-Prof. Dr. Dieter Roller,

Die Unified Modeling Language (UML)

2 Anlegen und Konfigurieren von Datenbanken 35

Grundkurs Programmieren in Java

Objekt-Funktionale Programmierung. am Beispiel von SCALA. Thorsten Jolitz

Objektorientiert in C++

Knasmüller.book Seite vii Mittwoch, 28. März : vii. Inhaltsverzeichnis

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Inhaltsverzeichnis.

Objektorientierte Programmierung mit Java

Konzepte der Programmiersprachen

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen

Hans-Georg Schumann. C++ für Kids. Objektorientierte Programmierung. für Einsteiger

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

1. Organisatorisches, Aufbau eines Computers, Erstellung eines Programmes, Algorithmen und Programme, Grundlagen der Zahlendarstellung

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Die abstrakte Syntax der Unified Modeling Language

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Analyse und Design mit U ML 2.3

Java für Bauingenieure

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Beschreibung des Angebotes. Java Programmierung. LernenimInternet. Ansprechpartner. Angebot-Nr Angebot-Nr Weiterbildung.

Theorie zu Übung 8 Implementierung in Java

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Inhalt. Vorwort. Bibliografische Informationen digitalisiert durch

Balanced Scorecard und Ursache-Wirkungsbeziehungen

Objektorientierte Datenbanken

Michael Kämpf (Autor) Software-Framework zur Simulationsbasierten Optimierung mit Anwendung auf Produktions- und Lagerhaltungssysteme

Widmung Einleitung Vorwort 15 Übersicht zu diesem Buch Einführung in die Welt der Objektorientierung... 21

Konzept und Umsetzung

anwendungen programmieren Datenbank entwerfen & Implementierung Analyse bis zur SQL- NoSQL-Datenbanken Uwe Klug Mit einer Einführung in 2.

Informationsverarbeitung im Bauwesen

Vorlesung Programmieren

Vorwort zur sechsten Auflage

Arnold Willemer. Einstieg in C++ Galileo Press

Übersicht Informatikfächer WiIng

Inhalt. Unland, Rainer Datenbanken im Einsatz digitalisiert durch: IDS Basel Bern

C++-Entwicklung mit Linux

... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71

Praktische Eine Einführung

4. Objektorientierte Programmierung mit C++

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Datenbanken und SQL. Springer Vieweg. Eine praxisorientierte Einführung mit Anwendungen in Oracle, SQL Server und MySQL.

Programmieren in Java

Prinzipien der objektorientierten Programmierung (OOP)

XML und Datenmodellierung

Das Softwaresystem BASEMENT

Beziehungen zwischen Objekten

Objektorientierte Programmierung OOP

Taxi System. CheckUp Tutorial Version 4.3 Institut für Softwaretechnik und interaktive Systeme

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.

Transkript:

JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer

Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist objektorientiertes Programmieren (nicht)? 1 1.2 Wofür wird objektorientiertes Programmieren benötigt? 4 1.3 Überblick über den Inhalt 5 1.4 Wie können Sie dieses Buch benutzen? 6 1.5 Literatur 8 2 Abstrakte Datentypen 11 2.1 Arten der Komplexitätsbewältigung 11 2.2 Eigenschaften abstrakter Datentypen 15 2.3 Beispiele 16 2.4 Erweiterung durch generische Parameter 17 2.5 Abstrakte Datentypen und objektorientiertes Programmieren. 18 2.6 Übungen 18 3 Konzepte objektorientierter Programmierung 21 3.1 Objekte 21 3.2 Klassen 23 3.3 Botschaften 24 3.4 Generizität 26 3.5 Vererbung 27 3.6 Mehrfachvererbung 31 Inhaltsverzeichnis XI

3.7 Relationen 33 3.7.1 Vererbung 34 3.7.2 Aggregation 35 3.7.3 Assoziation 37 3.8 Zugriffsrechte 37 3.9 Statisches und dynamisches Binden 39 3.10 Polymorphismus 41 3.11 Virtuelle Methodentabellen 43 3.12 Persistenz 46 3.13Nebenläufigkeit 47 3.14 Übungen 47 4 Eine (endgültige) Definition von objektorientiertem Programmieren 49 5 Objektorientierte Programmiersprachen 53 5.1 Simula 54 5.2 Smalltalk 55 5.3 Eiffel 56 5.4ObjectiveC 56 5.5 C++ 57 5.6 Java 58 5.7 Zusammenfassung.59 6 Software Engineering 61 6.1 Ziele und Begriffe des Software Engineering 62 6.2 Entwicklung der Softwaretechnik 63 6.3 Objektorientierte Systemgestaltung 66 6.3.1 Was bezeichnet eine Klasse? 68 6.3.2 Wann wird Vererbung eingesetzt? 69 6.4 Übersicht zu gängigen Verfahren 69 6.4.1 Klassifikation 71 6.4.2 Verfahren 71 6.4.3 Unified Modeling Language (UML) 73 6.5 Bewertung und Ausblick 75 XII Inhaltsverzeichnis

I 7 Objektorientierter Systementwurf 77 i, 7.1 Überblick über das Verfahren 77! 7.2 Entdeckungsphase 79 7.2.1 Diskussion eines Beispiels: Die Semesterdatenverwaltung 80 [ 7.2.2 Bestimmung der Klassen 81 I 7.2.3 Bestimmung der Attribute 91 i 7.2.4 Bestimmung der Zusammenarbeit 104 [ 7.3 Analysephase 112 7.3.1 Bestimmung der Vererbungshierarchie 112 7.3.2 Teilsysteme 128 7.3.3 Protokolle und Dokumentation 131 7.4 Entwurf der Semesterdatenverwaltung 134 7.4.1 Die Vererbungshierarchie 134 7.4.2 Die Zusammenarbeitsgraphen 135 7.4.3 Spezifikation der Klassen 135 7.4.4 Spezifikation der Teilsysteme 145 7.4.5 Spezifikation der Kontrakte 146 7.4.6 Zusammenfassung 148 7.5 Übungen 149 8 Klassen in C++ 153 8.1 Allgemeines zu C++ 153 8.2 Klassen und Inhalte von Klassen 154 8.3 Konstruktoren und Destruktoren 157 8.4 Weitere Eigenschaften von Klassen 160 8.4.1 Lokale Klassen 161 8.4.2 Befreundete Klassen und Funktionen 162 8.4.3 Selbstbezug von Objekten 164 8.5 Programmaufbau 164 8.6 Welche Methoden benötigt eine Klasse? 166 9 Programmierung einer Klasse 169 9.1 Aufgabenstellung 169 9.2 Herleitung der Lösung 170 Inhaltsverzeichnis XIII

9.3 Lösungsvorschlag 172 9.3.1 Globale Vereinbarungen 172 9.3.2 Die Klasse KOMPLEX 173 9.3.3 Funktionen auf komplexen Zahlen 175 9.4 Übungen 176 10 Vererbung in C++ 179 10.1 Prinzip der Vererbung 179 10.2 Zugriffsrechte 180 10.2.1 Bei der Vererbung 181 10.3 Mehrfach definierte Methoden 181 10.4 Konstruktoren und Destruktoren 182 10.5 Virtuelle Methoden 184 10.6 Mehrfachvererbung 187 11 Programmierung einer einfachen Klassenhierarchie 189 11.1 Aufgabenstellung 189 11.1.1 Implementierung einer Klassenhierarchie 190 11.1.2 Realisierung einer Is-A-Relation 190 11.2 Herleitung der Lösung 190 11.2.1 Die Klassenhierarchie 191 11.2.2 Die Is-A-Relation 192 11.2.3 Erstellen der Tabellen 192 11.3 Diskussion der Programme 193 11.3.1 Globale Vereinbarungen 193 11.3.2 Die Klasse GOBJEKT 194 11.3.3 Die Klasse OBJ2DR 196 11.3.4 Die Klasse OBJ2DI 199 11.3.5 Die Klasse PIXEL 201 11.3.6 Die weiteren Klassen 203 11.4 Zusammenfassung 204 11.5 Übungen 204 12 Weitere Möglichkeiten von C++ 207 12.1 Dynamisches Verwalten von Objekten 207 12.2 Referenzen auf Objekte 209 12.3 Einfache Ein- und Ausgabe 209 XIV Inhaltsverzeichnis

12.4 Überladen von Operatoren 210 12.5 Templates 212 12.5.1 Generische Klassen 213 12.5.2 Generische Funktionen 214 12.5.3 Suchreihenfolge 214 12.6 Standard Template Library (STL) 214 12.7 Ausnahmebehandlung 216 12.8 Zusammenfassung 217 13 Programmierung und Vergleich verschiedener Zugriffsmöglichkeiten auf Klassenelemente 219 13.1 Aufgabenstellung 219 13.1.1 Erste Variante 220 13.1.2 Zweite Variante 220 13.1.3 Dritte Variante 220 13.1.4 Vergleich 221 13.2 Herleitung der Lösung 221 13.3 Programmtexte und Diskussion 222 13.3.1 Grundlegende Klassen 223 13.3.2 Klassen für die erste Variante 224 13.3.3 Klassen für die zweite Variante 227 13.3.4 Die Klasse der dritten Variante 228 13.3.5 Das Hauptprogramm 230 13.3.6 Ergebnis 230 13.4 Übungen 233 14 Umsetzung eines objektorientierten Systementwurfs 235 14.1 Umsetzung des objektorientierten Systementwurfs 235 14.1.1 Wie werden Klassen umgesetzt? 236 14.1.2 Wie werden Teilsysteme umgesetzt? 239 14.1.3 Wie werden Kontrakte umgesetzt? 240 14.2 Ausblick 240 14.3 Übungen 242 Inhaltsverzeichnis XV

Literaturverzeichnis 243 Glossar 247 Index 253 XVI Inhaltsverzeichnis