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

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++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

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

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

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

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

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

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

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

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

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

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

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

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

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

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach - Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6

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

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

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

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

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

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

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

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017 Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

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

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

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

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

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch:

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch: O UTLOOK EDITION Was ist die Outlook Edition? Outlook Edition integriert Microsoft Outlook E-Mail in Salesforce. Die Outlook Edition fügt neue Schaltflächen und Optionen zur Outlook- Benutzeroberfläche

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

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

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

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

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

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

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Archiv - Berechtigungen

Archiv - Berechtigungen Archiv - Berechtigungen - 1 Inhaltsverzeichnis 1. Grunddefinitionen...3 1.1. Mögliche Definitionen...3 1.1.1. Programme...3 1.1.2. Prinzipale...3 1.1.3 Archivzugriff...3 1.2. Leserichtung...3 1.2.1. Ordnerbezogen...3

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: webadmin@rundkirche.de Inhaltsverzeichnis 1 Einführung

Mehr

Benutzeranleitung Superadmin Tool

Benutzeranleitung Superadmin Tool Benutzeranleitung Inhalt 1 Einleitung & Voraussetzungen... 2 2 Aufruf des... 3 3 Konto für neuen Benutzer erstellen... 3 4 Services einem Konto hinzufügen... 5 5 Benutzer über neues Konto informieren...

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

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

Tevalo Handbuch v 1.1 vom 10.11.2011

Tevalo Handbuch v 1.1 vom 10.11.2011 Tevalo Handbuch v 1.1 vom 10.11.2011 Inhalt Registrierung... 3 Kennwort vergessen... 3 Startseite nach dem Login... 4 Umfrage erstellen... 4 Fragebogen Vorschau... 7 Umfrage fertigstellen... 7 Öffentliche

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

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

SWE5 Übungen zu Software-Engineering

SWE5 Übungen zu Software-Engineering 1 Übungen zu Software-Engineering 1) Klassen und Objekte 2) Telefonanlage 3) Objekt- und Klassendiagramme 4) Assoziationen 5) Telefonanlage (Erweiterung) 6) Fahrzeuge 7) Familien 2 Aufgabe 1: Klassen und

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

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

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-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

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

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr