C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

Größe: px
Ab Seite anzeigen:

Download "C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern"

Transkript

1 C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind

2 Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches Modell ab. Das Modell sollte maximal drei Ebenen besitzen. Einführung in die C++-Programmierung, Seite 2

3 Regeln Es werden alle öffentlichen Attribute und Methoden von der Basisklasse geerbt. Neue Attribute und Methoden können hinzufügt werden. Vorhandene Methoden können überlagert werden. Konstruktoren und Destruktoren werden nicht vererbt. Einführung in die C++-Programmierung, Seite 3

4 Beispiel Konto - kontonummer : string - pinnummer : string +abheben(float betrag) +einzahlen(float betrag) +eroeffnen +schliessen GiroKonto - dispo : float FestgeldKonto - laufzeit : int - zins : float Einführung in die C++-Programmierung, Seite 4

5 Basis- und Subklassen Basisklasse Fahrzeuge Subklasse Land Wasser Luft Schiene Motorisiert Unmotorisiert Unmoterisiert Motorisiert Flugzeug Zeppelin Heißluftballon Einführung in die C++-Programmierung, Seite 5

6 Erläuterung Die Subklasse (Unterklasse, abgeleitete Klasse) erbt von der Basisklasse alle öffentlichen Attribute und Methoden. beschreibt die speziellen Elemente einer Klasse. Die Basisklasse (Oberklasse) stellt ein Grundgerüst an Attribute und Methoden für eine bestimmte Kategorie von Klassen zur Verfügung. kann aber selber Subklasse einer anderen Basisklasse sein. Einführung in die C++-Programmierung, Seite 6

7 Generalisierung und Spezialisierung Spezialisierung Fahrzeuge Generalisierung Land Wasser Luft Schiene Motorisiert Unmotorisiert Unmoterisiert Motorisiert Flugzeug Zeppelin Heißluftballon Einführung in die C++-Programmierung, Seite 7

8 Hinweise Subklassen beschreiben Attribute und Methoden, die nur eine Klasse in einer bestimmten Kategorie von Klassen besitzt. Um so weiter man in der Hierarchie der Klassen nach unten geht, um so spezieller werden die Klassen. Basisklassen ermöglichen eine Zusammenfassung von gemeinsamen, allgemeinen Eigenschaften einer bestimmten Kategorie von Klassen. Um so weiter man in der Hierarchie der Klassen nach oben geht, um so unbestimmter sind die Klassen. Einführung in die C++-Programmierung, Seite 8

9 Basisklasse definieren class _CKonto{ protected: std::string kontonummer; std::string pinnummer; float kontostand; public: _CKonto(){}; _CKonto(std::string kontonr, std::string pin) { kontonummer = kontonr; pinnummer = pin; kontostand = 10.0; } // Methoden }; Einführung in die C++-Programmierung, Seite 9

10 Zugriffsrechte private: // Attribute Auf die Attribute kann nicht von außen zugegriffen werden. Die Subklasse kann auf diese Elemente nicht zugreifen. protected: // Attribute Nur die Subklasse sowie die Basisklasse kann auf die Elemente zugreifen. Für einen Zugriff von außen sind die Elemente gesperrt. public: // Methoden, Konstruktoren Die Methoden sind öffentlich zugänglich. Die Subklasse kann auf diese Methoden zugreifen. Einführung in die C++-Programmierung, Seite 10

11 Konstruktoren Der Standardkonstruktor sollte vorhanden sein. Es können allgemeine Konstruktoren definiert werden. Einführung in die C++-Programmierung, Seite 11

12 Subklasse definieren class _CGiroKonto : public _CKonto { private: int dispo; public: _CGiroKonto(std::string kontonr, std::string pin, int dispo=0) : _CKonto(kontoNr, pin), dispo(dispo){}; }; void setdispo(int neudispo){}; int getdispo(){ return dispo; }; Einführung in die C++-Programmierung, Seite 12

13 Kopf einer Subklasse class _CGiroKonto : public _Ckonto { Jede Subklasse beginnt wie die Basisklasse mit dem Schlüsselwort class. Dem Schlüsselwort folgt der Name der Subklasse. Der Doppelpunkt trennt den Namen der abgeleiteten Klasse von der Basisklassen-Liste. Einführung in die C++-Programmierung, Seite 13

14 Basisklassen-Liste class _CGiroKonto : public _Ckonto { Die Namen der Basisklassen, getrennt durch Kommata, werden aufgelistet. Die Liste wird vom Namen der abgeleiteten Klasse durch ein Doppelpunkt getrennt. Der Zugriff auf die Basisklasse wird spezifiziert. In den meisten Fällen ist der Zugriff ist öffentlich. Die Subklasse ist eine Teilmenge der Basisklasse. Die Zugriffsrechte der Basisklasse werden übernommen. Einführung in die C++-Programmierung, Seite 14

15 Zugriff Deklaration in der Basisklasse Zugriff auf die Basisklasse aus Sicht der Subklasse public public public public protected protected protected private private private public protected public protected protected protected protected private private private public private public private protected protected private private private private aus Sicht des Objekts Subklasse Einführung in die C++-Programmierung, Seite 15

16 Regeln für die Subklasse Jede Subklasse hat ein anonymes Objekt vom Typ Basisklasse eingebettet. Die Subklasse kann auf alle public- und protected-elemente der Basisklasse zugreifen. Die Subklasse kann eigene Methoden implementierten oder die Methoden aus der Basisklasse nutzen. Die Methoden aus einer Basisklasse können von der Subklasse überladen werden. Einführung in die C++-Programmierung, Seite 16

17 Regeln für die Basisklasse Die Basisklasse vererbt alle Elemente, bis auf Konstruktoren, Destruktoren und Zuweisungsoperatoren. Die Basisklasse wird nicht durch die Subklasse verändert. Es können beliebig viele Klassen von der Basisklasse abgeleitet werden. Einführung in die C++-Programmierung, Seite 17

18 Konstruktor public: _CGiroKonto(std::string kontonr, std::string pin, int dispo=0) : _CKonto(kontoNr, pin), dispo(dispo){}; Mit Hilfe der Initialisierungsliste werden die Anfangswerte für die verschiedenen Attribute gesetzt. In der Initialisierungsliste wird immer zuerst der Konstruktor der Basisklasse aufgerufen und anschließend die Attribute der Subklasse initialisiert. Die Reihenfolge der Attribute entspricht der Reihenfolge in den Klassen. Einführung in die C++-Programmierung, Seite 18

19 Polymorphie Vielgestaltigkeit, Ähnlichkeit. innerhalb einer Klasse: Methoden in einer Klasse werden überladen. bei der Vererbung von Klassen: Die Subklasse überschreibt eine Methode der Basisklasse. Die Subklasse nutzt virtuelle Methoden. Objekte einer Subklasse, die alle die gleiche Basisklasse nutzen, reagieren auf ein und dieselbe Nachricht unterschiedlich. Einführung in die C++-Programmierung, Seite 19

20 Überladende Methoden... besitzen den gleichen Namen. unterscheiden sich in dem Datentyp und / oder der Anzahl der Parameter. werden nicht mit Hilfe des Funktionstyps oder von Default- Parametern unterschieden. Einführung in die C++-Programmierung, Seite 20

21 Methoden in einer Klasse überladen class KUNDE{ public: void setadress(string strasse, string plz, string ort); void setadress(string nachname); }; void KUNDE::setAdress(string strasse, string plz, string ort) { kundestrasse = strasse; kundeplz = plz; kundeort = ort; } void KUNDE::setAdress(string nachname){ kundename = nachname; } Einführung in die C++-Programmierung, Seite 21

22 Methoden überschreiben Methoden aus der Basisklasse werden überdeckt. Geerbte Methoden werden mit einer neuen Funktionalität versehen. Die Methode aus der Basisklasse und der Subklasse besitzen den gleichen Methodenkopf. Nur die Anweisungen im Methodenrumpf werden verändert. Einführung in die C++-Programmierung, Seite 22

23 Methoden in der Basisklasse implementieren class _CKonto { protected: float kontostand; }; public: float hebeab(float betrag){ kontostand = kontostand - betrag; return kontostand; } Einführung in die C++-Programmierung, Seite 23

24 Methoden aus einer Basisklasse überschreiben class _CGiroKonto : public _CKonto{ private: int dispo; public: float hebeab(float betrag){ if ( (kontostand - betrag ) >= 0){ kontostand = kontostand - betrag; } else if ( (kontostand - betrag ) >= dispo){ kontostand = kontostand - betrag; } return kontostand; } }; Einführung in die C++-Programmierung, Seite 24

25 Hinweise Jede Methode aus der Basisklasse kann überschrieben werden. Die Methode besitzt in der Basisklasse und in der Subklasse den gleichen Methodennamen. Die Parameterliste in der Basisklasse sowie in der Subklasse sind gleich. Einführung in die C++-Programmierung, Seite 25

26 Aufruf der Methode // Aufruf der Methode in der Subklasse mygiro.hebeab(200); cout << "Kontostand:" << mygiro.getkontostand() << endl; // Aufruf der Methode aus der Basisklasse. mygiro._ckonto::hebeab(300); cout << "Kontostand:" << mygiro.getkontostand() << endl; Einführung in die C++-Programmierung, Seite 26

27 Virtuelle Methoden werden nur in der Basisklasse implementiert. definieren eine Schnittstelle für alle Subklassen der Basisklasse. werden in der Subklasse überschrieben. Die Methode kommt mit dem gleichen Namen und gleicher Parameterliste in der Subklasse vor. sind vom Typ des Objekts abhängig. Welcher Klasse gehört das Objekt an? benötigen einen virtuellen Destruktor. Einführung in die C++-Programmierung, Seite 27

28 Late Binding der virtuellen Methoden Späte Bindung oder dynamische Bindung. Beim Linken wird keine feste Sprungadresse für die Methode eingetragen. Der Methodenaufruf wird erst zur Laufzeit des Programms einer Methode zugeordnet. Einführung in die C++-Programmierung, Seite 28

29 Realisierung Jede Klasse mit virtuellen Methoden hat eine Virtual Method Table, in der die Adressen der virtuellen Methoden gespeichert sind. Ein Objekt einer polymorphen Klasse hat einen Virtual Method Pointer, der auf diese Tabelle zeigt. Einführung in die C++-Programmierung, Seite 29

30 in der Basisklasse implementieren class _CKonto { protected: float kontostand; }; public: virtual float hebeab(float betrag){ kontostand = kontostand - betrag; return kontostand; } Einführung in die C++-Programmierung, Seite 30

31 Kopf einer virtuellen Methode public: virtual float hebeab(float betrag){ beginnt immer mit dem Schlüsselwort virtual. Dem Schlüsselwort folgt der Name der virtuellen Methode. Eine virtuelle Methode hat eine Parameterliste. Einführung in die C++-Programmierung, Seite 31

32 Konstruktoren und Destruktoren Konstruktoren dürfen nicht virtuell sein. Zum Erzeugen von Objekten muss die Klasse zur Compilezeit festgelegt sein. Destruktoren können virtuell sein. Die Destruktoren werden dann immer in der Reihenfolge Kind Eltern abgearbeitet. Einführung in die C++-Programmierung, Seite 32

33 Virtueller Destruktor in der Basisklasse class _CKonto { Protected: // Attribute public: // Konstruktoren virtual ~_CKonto() { kontostand = 0; kontonummer = ""; pinnummer = ""; delete this; } Einführung in die C++-Programmierung, Seite 33

34 Aufbau eines Destruktors Ein Destruktor beginnt mit ~ (Tilde). Destruktoren nutzen wie Konstruktoren als Bezeichnung den Namen der Klasse. Destruktoren haben keinen Rückgabewert. Parameter werden an einen Destruktor nicht übergeben. Einführung in die C++-Programmierung, Seite 34

35 Aufruf von Destruktoren Destruktoren werden automatisch aufgerufen, wenn ein Objekt zerstört wird. Das heißt, die Objektvariable verliert ihre Gültigkeit. delete für die dynamische Verwaltung von Objekten aufgerufen wird. Einführung in die C++-Programmierung, Seite 35

36 manuell erstellen Angeforderter Speicher wird freigegeben. Verbindungen zu Datenbanken oder Dateien müssen aufgelöst werden. Virtuelle Destruktoren werden für eine Basisklasse benötigt. Einführung in die C++-Programmierung, Seite 36

37 Abstrakte Klassen haben mindestens eine pure virtual Methode. definieren Schnittstellen können keine Objekte erzeugen. liefern Informationen an die abgeleitete Klasse. Einführung in die C++-Programmierung, Seite 37

38 implementieren class _CKonto { protected: public: // Konstruktoren virtual ~_CKonto() { kontostand = 0; kontonummer = ""; pinnummer = ""; delete this; } // Methoden virtual float hebeab(float betrag) = 0; Einführung in die C++-Programmierung, Seite 38

39 Pure virtual Methode public: virtual float hebeab(float betrag) = 0; sind virtuelle Methoden, denen der Wert 0 zugewiesen wird. sind Deklarationen einer Methode. Eine allgemeine Implementierung für diese Methode ist nicht möglich. Alle Subklassen müssen diese Methode überladen. Einführung in die C++-Programmierung, Seite 39

40 Methoden aus einer Basisklasse überladen class _CGiroKonto : public _CKonto{ private: public: float hebeab(float betrag, _CKonto &konto) { if ( (kontostand - betrag ) >= 0){ kontostand = kontostand - betrag; konto.zahleein(betrag); } else if ( (kontostand - betrag ) >= dispo){ kontostand = kontostand - betrag; konto.zahleein(betrag); } return kontostand; } Einführung in die C++-Programmierung, Seite 40

41 Hinweise Die Methode aus der Basisklasse wird überdeckt. Sobald die überladene Methode aufgerufen wird, wird zuerst in der Subklasse nach einer Methode gesucht und anschließend in der Basisklasse. Einführung in die C++-Programmierung, Seite 41

42 Operatoren überladen..., um Rechenoperatoren oder Vergleichsoperatoren für benutzerdefinierte Datentypen zu implementieren...., um Klassen mit einer Funktionalität ähnlich wie Standard- Datentypen auszustatten. Einführung in die C++-Programmierung, Seite 42

43 Operatoren in C++ Umgangssprachliche Schreibweise: summe = a + b Der Operator definiert eine Verknüpfungsvorschrift. Formale Schreibweise: summe = operator+ (a, b) Die Operatoren sind als Funktionen implementiert. Der Funktion Addition werden zwei Parameter übergeben. Einführung in die C++-Programmierung, Seite 43

44 Nicht oder nur in Klassen überladbare Operatoren Nicht überladbare Operatoren: ::?:..* size of typei d Außerdem können die Cast-Operatoren, die Präprozessor- Kennzeichnung # oder ## sowie defined nicht überladen werden. Nur in Klassen überladbare Operatoren: = () [] -> Einführung in die C++-Programmierung, Seite 44

45 Regeln Es können keine neuen Operatoren definiert werden. Mindestens ein Operand muss eine Klasse oder eine Referenz auf eine Klasse sein. Die Funktionalität des Operators wird nicht verändert. Operanden, die aneinandergereiht werden können, müssen eine Referenz auf den linken Operator zurückgeben. Einführung in die C++-Programmierung, Seite 45

46 Überladung im Klassenbereich class KUNDE{ public: KUNDE& operator= (const KUNDE quelle) { kundename = quelle.kundename; kundevorname = quelle.kundevorname; kundestrasse = quelle.kundestrasse; kundeplz = quelle.kundeplz; kundeort = quelle.kundeort; }; } return *this; Einführung in die C++-Programmierung, Seite 46

47 Überladung des Zuweisungsoperators Eine Klasse hat dynamische Eigenschaften. Ein Kopierkonstruktor wird benötigt. Ein Destruktor wird benötigt. Einführung in die C++-Programmierung, Seite 47

48 Aufbau public: KUNDE& operator= (const KUNDE quelle) { return *this; } werden für Überladungen genutzt, die auf private- und protected-attribute zugreifen müssen. Der Funktionsname besteht aus dem Schlüsselwort operator und dem Operator-Zeichen. Es muss ein Objekt als erster Parameter genutzt werden. Einführung in die C++-Programmierung, Seite 48

49 Rückgabewert public: KUNDE& operator= (const KUNDE quelle) { return *this; } Die Funktion gibt eine Referenz auf das geänderte Objekt zurück. Einführung in die C++-Programmierung, Seite 49

50 this ist ein Zeiger auf das aktuelle Objekt. ist ein konstanter Zeiger. hat als Wert die Adresse des aktuellen Zeigers. Einführung in die C++-Programmierung, Seite 50

51 Überladung im Dateibereich class _CKonto { public: _CKonto operator+= (int betrag); }; _CKonto _CKonto::operator+= (int betrag) { kontostand += betrag; return *this; } Einführung in die C++-Programmierung, Seite 51

52 Aufbau _CKonto _CKonto::operator+= (int betrag) { return *this; } werden für Überladungen von arithmetischen oder relationalen Operatoren genutzt. Es kann ein beliebiges Element als erster Parameter genutzt werden. können nicht auf protected-attribute zugreifen. Einführung in die C++-Programmierung, Seite 52

53 Objekte als Parameter float hebeab(float betrag, _CKonto &konto){}; class _CKonto mykonto("123456", "abc12"); class _CGiroKonto mygiro("345612", "", 200); mygiro.hebeab(100, mykonto); Ein Objekt wird an eine Methode als Referenz übergeben. Es wird ein Alias für ein Objekt übergeben. Das übergebene Objekt kann mit Hilfe des Schlüsselwortes const vor Veränderungen geschützt werden. Einführung in die C++-Programmierung, Seite 53

54 dynamic_cast class _CKonto *basisclassptr; class _CKonto *subclassptr; basisclassptr = dynamic_cast<_ckonto *>(&mygiro); ist nur mit Zeigern und Referenzen möglich.... benötigen Run-Time Type Information (RTTI). Einige Compiler haben diese deaktiviert! Einführung in die C++-Programmierung, Seite 54

55 nutzen Konvertierung von Basisklassen-Zeigern in Subklassen- Zeigern. Konvertierung eines Subklassen-Zeiger in einem Basisklassen- Zeigern. Diese Konvertierung kann zu einem Informationsverlust führen! Einführung in die C++-Programmierung, Seite 55

56 Wann wird die Konvertierung ausgeführt? Zur Laufzeit. Falls eine Konvertierung nicht möglich ist.... wird ein Null-Zeiger übergeben oder... bad_cast bei Referenzen. Einführung in die C++-Programmierung, Seite 56

57 static_cast class _CKonto *basisclassptr; class _CKonto *subclassptr; basisclassptr = static_cast<_ckonto *>(&mygiro); Der Typ, in den konvertiert wird, muss während der Compilierung bekannt sein! Einführung in die C++-Programmierung, Seite 57

58 nutzen class _CKonto *basisclassptr; class _CKonto *subclassptr; basisclassptr = static_cast<_ckonto *>(&mygiro);... wird für die Konvertierung von Variablen von einem Datentyp in einem anderen genutzt.... wird für die Konvertierung von Basisklassen-Zeigern in Subklassen-Zeigern genutzt.... kann für die Umwandlung eines Subklassen-Zeiger in einem Basisklassen-Zeigern genutzt werden.... wandelt einen void-zeiger in jeden anderen Zeiger um. Einführung in die C++-Programmierung, Seite 58

59 reinterpret_cast und const_cast const_cast... fügt const hinzu oder entfernt dieses. reinterpret_cast... konvertiert jeden Zeiger in jeden anderen Zeiger Interpretation von Bitmustern im Kontext des Ziels.... konvertiert Ganzzahl nach Zeiger. Einführung in die C++-Programmierung, Seite 59

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung C++ - Einführung in die Programmiersprache Objektorientierte Programmierung hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Projekt

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung new/delete, virtual, Typumwandlungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 new/delete

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung

Mehr

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Teil 9: Vererbung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 9 Vererbung... 3 9.1 Motivation... 3 9.2 Deklaration und Zugriffsrechte...

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik Software-Technik: Vom Programmierer zur erfolgreichen Software-Technik: Vom Programmierer zur erfolgreichen 1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

Mehr

Kapitel 10: Subklassen / Vererbung

Kapitel 10: Subklassen / Vererbung 10. Subklassen/Vererbung 10-1 Objektorientierte Programmierung (Winter 2006/2007) Kapitel 10: Subklassen / Vererbung Deklaration von Subklassen Vererbung von Daten und Funktionen Überschreiben/Redefinition,

Mehr

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) 13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008 Überblick 1 Primitive Datentypen Von Java/C nach Fabian Scheler, Peter Ulbrich, Niko Böhm Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Themen Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Statische Methoden Klassenmethoden Merkmal der Klasse nicht eines einzelnen Objekts

Mehr

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung. Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter

Mehr

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

Mehr

Klassen in Java. Klassen

Klassen in Java. Klassen Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Meeting C++ C++11 R-Value Referenzen

Meeting C++ C++11 R-Value Referenzen Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit

Mehr

Objektorientierte Programmierung mit Python Objekt und Klassen

Objektorientierte Programmierung mit Python Objekt und Klassen Objektorientierte Programmierung mit Python Objekt und Klassen hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Eine Aufgabe wird

Mehr

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0 Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben

Mehr

Teil 6: Klassenkonzept. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Teil 6: Klassenkonzept. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Teil 6: Klassenkonzept Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 6 Klassenkonzept...3 6.1 Was ist eine Klasse?... 3 6.2

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie WiMa-Praktikum 1, Teil C++, Tag 5 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 29.08.08

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Objektorientierte Programmiersprachen

Objektorientierte Programmiersprachen Objektorientierte Programmiersprachen 1960 Algol 1970 Simula Pascal 1980 Smalltalk C Ada 1990 C++ Eiffel Eine ovale Box symbolisiert eine objektorientierte Programmiersprache. Eine rechteckige Box steht

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

OO Softwareentwicklung

OO Softwareentwicklung OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung

Mehr

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

9. Vererbung und Polymorphismus

9. Vererbung und Polymorphismus C und C++ (CPP) 9. Vererbung und Polymorphismus Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für angewandte Wissenschaften marc.rennhard@zhaw.ch

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Kurs OPR. Objektorientierte Programmierung

Kurs OPR. Objektorientierte Programmierung Kurs OPR Objektorientierte Programmierung Lektion: 005-Vererbung, Polymorphismus Zürcher Hochschule für Angewandte Wissenschaften Mitglied der Fachhochschule Zürich Version 1.4 Inhaltsverzeichnis 1 Vererbung

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

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

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

11.3 Virtuelle Methoden

11.3 Virtuelle Methoden 11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee void print() const cout

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04) 12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:

Mehr

Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur. Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen

Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur. Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen Gliederung Einführung: Methodenbindung und Kapselung

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit von Programmcode, wenn

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:

Mehr

Objektorientierung Grundbegriffe

Objektorientierung Grundbegriffe Objektorientierung Grundbegriffe Um Java programmieren zu können, ist es wichtig, einige objektorientierte Grundkenntnisse zu besitzen, denn die Sprache setzt voll auf dem OO-Paradigma auf. 3.1 Klassen

Mehr