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

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

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

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

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

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

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

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

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. 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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

Ü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

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

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

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

CORBA Implementierung von Client und Server

CORBA Implementierung von Client und Server CORBA Implementierung von Client und Server J. Heinzelreiter WS 2003/04 Implementierung des Clients Initialisierung und Freigabe des ORBs. Mapping von Interfaces. Behandlung von Objektreferenzen. Verwaltung

Mehr

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Name : Vorname : Matrikelnummer : Hauptfach : Nebenfach/Fachrichtung Hinweise : 1. Überprüfen

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

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

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

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

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

Einführung in C++ Operatoren überladen (Klassen)

Einführung in C++ Operatoren überladen (Klassen) Einführung in C++ Operatoren überladen (Klassen) Operatoren überladen Die Überladung von Operatoren ermöglicht es, vorhandene Operatoren (+,-,...) auch auf Objekte von Klassen anzuwenden. Die meisten der

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

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Alltagsnotizen eines Softwareentwicklers

Alltagsnotizen eines Softwareentwicklers Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

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

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

Kapitel 3 Das Projekt Bankkonto Seite 1 Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.

Mehr

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2 Praktische Informatik I Vorlesung im Herbstwintersemester 2007 Autorisierte studentisch Lösungen zu Aufgabenblatt 2 zusammengestellt von Iva Tsvetkova 9.10.2007 1.Präsenzaufgaben 1.1 Entwurf einer Verwaltung

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Bis jetzt: Heute: Entwicklungsumgebung

Mehr

> Vererbung, Die Austauschbarkeit

> Vererbung, Die Austauschbarkeit Objektorientierte Programmierung (OOP) > Vererbung, Die Austauschbarkeit Mark Egloff 2006 1 Lernziel Heute Abend > Sie lernen wie Objekte gezielt kompatibel werden und somit ausgetauscht werden können

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage

Mehr

Grundlagen der Informatik Objektorientierte Software-Entwicklung

Grundlagen der Informatik Objektorientierte Software-Entwicklung Grundlagen der Informatik Objektorientierte Software-Entwicklung Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer

Mehr

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

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

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

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Inhalt. 1. Sprachspezifische Fehlerrisiken C++ Java. Smalltalk. 2. Coverage - Modelle. Statement Coverage. Branch Coverage

Inhalt. 1. Sprachspezifische Fehlerrisiken C++ Java. Smalltalk. 2. Coverage - Modelle. Statement Coverage. Branch Coverage Inhalt 1. Sprachspezifische Fehlerrisiken C++ Java Smalltalk 2. Coverage - Modelle Statement Coverage Branch Coverage Inkrementelles Testen von Klassen Testen Polymorpher Bindungen Optimistischer Ausblick

Mehr

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik Fachhochschule Kaiserslautern FB Informatik und Mikrosystemtechnik Prof. Dr. M. Duque-Antón Bachelor-Klausur im WiSe 2013 / 2014 im Fach Grundlagen der Informatik Angewandte Informatik / Medieninformatik

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung 1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Schnittstellen implementieren am Beispiel Suchbaum

Schnittstellen implementieren am Beispiel Suchbaum Motivation Informatik mit Java und BlueJ Schnittstellen implementieren am Beispiel Suchbaum von Bernhard Rosing Schreiben Sie eine Klasse Person, deren Instanzen in ein TreeSet (Suchbaum) eingefügt werden

Mehr

C++ IN DER EMBEDDED-ENTWICKLUNG WAS DRAN IST AN DEN VORURTEILEN

C++ IN DER EMBEDDED-ENTWICKLUNG WAS DRAN IST AN DEN VORURTEILEN C++ IN DER EMBEDDED-ENTWICKLUNG WAS DRAN IST AN DEN VORURTEILEN Günter Obiltschnig Applied Informatics Software Engineering GmbH St. Peter 33 9184 St. Jakob im Rosental Austria guenter.obiltschnig@appinf.com

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung Grundlagen der Programmierung Prof. H. Mössenböck 11. Objektorientierung Klasse = Daten + Methoden Beispiel: Positionsklasse class Position { private int x; private int y; void goleft() { x = x - 1; void

Mehr

Einführung in das Objektorientierte Programmieren mit C++

Einführung in das Objektorientierte Programmieren mit C++ BEREICH DATENTECHNIK I CP 500 00 TH 02 Einführung in das Objektorientierte Programmieren mit C++ Kapitel 5 5. Überladen von Operatoren 5.1. Allgemeines 5.2. Operator-Funktionen 5.3. Zuweisungs-Operator

Mehr

Der C++ Crashkurs v1.0

Der C++ Crashkurs v1.0 Der C++ Crashkurs v1.0 Daniel Stöckel, M. Sc. October 14, 2013 1 Grundlegendes 1.1 Das erste Programm Wir beginnen mit einem einfachen Hello world Programm. Listing 1: hello world.cpp // Einbinden der

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

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber 1) Welche Antworten zur Operatorüberladung sind richtig? (1) a) C++ - Operatoren können zusammen mit Objekten funktionieren b) C++ - Operatoren wird

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Arrays Fortgeschrittene Verwendung

Arrays Fortgeschrittene Verwendung Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung

Mehr

Operatoren überladen. Grundsätzliches

Operatoren überladen. Grundsätzliches Operatoren überladen Grundsätzliches Die erste, allgemeinste und wichtigste Regel für das Überladen von Operatoren lautet: Tu s nicht. Das mag paradox klingen, aber der Grund dafür ist, daß sich die hinter

Mehr

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java G bhv Inhaltsverzeichnis Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Ш11ШШШШ '. ш Ш Java 19 Die Geschichte

Mehr

Informatikpraktikum CE2. Übung 1: Einfach verkettete Liste

Informatikpraktikum CE2. Übung 1: Einfach verkettete Liste Informatikpraktikum CE2 Übung 1: Einfach verkettete Liste c Torben Nehmer 1998 INHALTSVERZEICHNIS INHALTSVERZEICHNIS Inhaltsverzeichnis 1 Anforderungen an die Liste 3 1.1 Beschreibung

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

Kurzeinführung in C++

Kurzeinführung in C++ Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber

Mehr

Objective-C CheatSheet

Objective-C CheatSheet App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController

Mehr

Inhaltsverzeichnis. 4.1 Programme compilieren und starten 4.2 Arbeiten mit dem Editor 4.3 Der Objekt-Inspektor

Inhaltsverzeichnis. 4.1 Programme compilieren und starten 4.2 Arbeiten mit dem Editor 4.3 Der Objekt-Inspektor Inhaltsverzeichnis Vorwort 1 Was ist Delphi? 1.1 Die Wurzeln von Delphi 1.2 Der Konkurrent - Visual Basic 1.3 Die komponentenbasierte Entwicklung 1.4 Object-Pascal 2 Programmieren mit Delphi 2.1 Das ))visuelle((

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Vorbereitung zu Praktikum 3

Vorbereitung zu Praktikum 3 Vorbereitung zu Praktikum 3 Menü-Toolkit und Command Pattern Fallstudie zu Vererbung und Polymorphie: "Menü-Toolkit" Anwenderfreundliche Programme werden mit Menüs gesteuert In objektorientierten Anwendungen

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

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

11. Klassen. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) 11. Klassen Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Objektorientierte Programmierung Das Konzept der Klassen Members Objekte Konstruktoren und Destruktoren this-pointer Public und

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen

Mehr

Praxisorientierte Einführung in C++ Lektion: "Exceptions"

Praxisorientierte Einführung in C++ Lektion: Exceptions Praxisorientierte Einführung in C++ Lektion: "Exceptions" Christof Elbrechter Neuroinformatics Group, CITEC June 18, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ June 18, 2014 1 / 41 Table

Mehr

MotorBoot. - leistung: int - geschwindigkeit: int - ankeranzahl: int - satellitennavigation: boolean - radar: boolean

MotorBoot. - leistung: int - geschwindigkeit: int - ankeranzahl: int - satellitennavigation: boolean - radar: boolean Inhalt 9 Klassen... 9-2 9.1 Instanzvariablen und Instanzmethoden... 9-2 9.1.1 Vereinbarung... 9-2 9.1.2 this - Selbstreferenz... 9-5 9.1.3 tostring()... 9-5 9.2 Klassenvariablen und Klassenmethoden...

Mehr

C++ Idiome. C++ Idiome. Detlef Wilkening http://www.wilkening-online.de C++ User-Treffen Aachen am 13.02.2014. http://www.wilkening-online.

C++ Idiome. C++ Idiome. Detlef Wilkening http://www.wilkening-online.de C++ User-Treffen Aachen am 13.02.2014. http://www.wilkening-online. C++ Idiome Detlef Wilkening http://www.wilkening-online.de C++ User-Treffen Aachen am 13.02.2014 http://www.wilkening-online.de 1 / 63 Es gibt weit über 100 Idiome in C++ Wir schauen uns hier nur eine

Mehr

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse rof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 25. Mai 2009 1/10 Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse Prof. G. Kemnitz Institut

Mehr

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

PHP Aufbaukurs. Tag 3. PHP5 & Klassen PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1

Mehr