Programmieren in C++ Vererbung
|
|
- Käte Ritter
- vor 6 Jahren
- Abrufe
Transkript
1 Programmieren in C++ Vererbung
2 Inhalt Vererbung Konstruktoren und Destruktor von abgeleiteten Klassen Typkonvertierung von Zeigern Identifikation der Klasse eines Objekts Überladen von Methoden Verdecken und Überschreiben Polymorphie Überschreiben von Methoden Vererbung bzw. Überschreiben unterbinden Zuweisungsoperator in abgeleiteten Klassen Zugriffsrechte Mehrfachvererbung 6-2
3 Vererbung: Beispiel Person/Student Superklasse (Basisklasse, Oberklasse, Vaterklasse) Klasse Person mit Eigenschaften Datenfelder: Nachname, Vorname Methoden: setnachname(), setvorname(), print() Subklasse (abgeleitete Klasse, Unterklasse, Sohnklasse) erbt Eigenschaften der Superklasse fügt eigene Eigenschaften dazu matrikelnummer setmatrikelnummer() printmatrikelnummer() 6-3
4 Realisierung der Klasse Person in C++ // in h-datei class CPerson { string m_nachname; string m_vorname; // Aggregation: Person hat einen Nachnamen // Aggregation: Person hat einen Vornamen public: void setnachname(const string& nachname) { m_nachname = nachname; } void setvorname(const string& vorname) { m_vorname = vorname; } void print() const; }; // in cpp-datei void CPerson::print() const { cout << "Nachname: " << m_nachname << endl; cout << "Vorname: " << m_vorname << endl; } 6-4
5 Realisierung der Klasse Student in C++ // in h-datei: Vererbung: ein Student ist eine Person class CStudent : public CPerson { // die Klasse CStudent wird von der Klasse CPerson abgeleitet // und erbt alle Attribute und Methoden der Klasse CPerson int m_matrikelnummer; public: // neue Methoden der Klasse CStudent void setmatrikelnummer(int nr) { m_matrikelnummer = nr; } void printmatrikelnummer() const; }; // in cpp-datei void CStudent::printMatrikelnummer() const { cout << "Matrikelnummer: " << m_matrikelnummer << endl; } 6-5
6 Einsatz der Klasse CStudent int main () { CPerson pers; pers.setnachname("mueller"); pers.setvorname("peter"); pers.print(); CStudent student; student.setnachname("maier"); student.setvorname("fritz"); student.setmatrikelnummer(56123); student.print(); student.printmatrikelnummer(); } CPerson pers2 = student; pers2.print(); // nicht aber: pers2.printmatrikelnummer(); return 0; 6-6
7 Konstruktoren in abgeleiteten Klassen Idee jeder abgeleitete Konstruktor initialisiert nur die neuen Datenfelder vererbte Datenfelder werden vom Konstruktor der Basisklasse initialisiert Umsetzung in C++ In der Initialisierungsliste des Konstruktors wird der Konstruktor der Basisklasse aufgerufen falls kein expliziter Aufruf eines Konstruktors der Basisklasse erfolgt, wird der Standardkonstruktor der Basisklasse implizit aufgerufen möglicher Inhalt der Initialisierungsliste Attribute der Klasse, aber keine geerbten Attribute Konstruktoraufruf der Basisklasse 6-7
8 Beispiel zu abgeleiteten Konstruktoren class CPerson { string m_name; string m_vorname; public: } CPerson(const string& name, const string& vname) : m_name(name), m_vorname(vname) { } cout << "K. von CPerson" << endl; class CStudent: public CPerson { int m_matnr; public: } CStudent(const string& name, const string& vname, int m) : CPerson(name, vname), m_matnr(m) { } cout << "K. von CStudent" << endl; im Testprogramm: CStudent studi("uwe", "Ochsenknecht", ); Ausgabe: K. von CPerson K. von CStudent 6-8
9 Konstruktoren erben (C++11) Grundsatz normalerweise erbt eine Klasse C keine Konstruktoren ihrer Basisklassen somit stehen nur die Konstruktoren der Klasse C zur Initialisierung von Instanzen der Klasse C zur Verfügung In C++11 können alle Konstruktoren der Basisklasse geerbt werden class CStudent: public CPerson { int m_matnr = 0; public: } using CPerson::CPerson; // Initialwert ist hier wichtig CStudent(const string& name, const string& vname, int m) // erbt alle Konstruktoren der Klasse CPerson : CPerson(name, vname, m_matnr(m) { cout << "K. von CStudent" << endl; } Das System verwendet den geerbten Konstruktor der Klasse CPerson und erzeugt einen Konstruktor für die Klasse CStudent mit der gleichen Deklaration. Der erzeugte Konstruktor der Klasse CStudent ruft den Konstruktor der Klasse CPerson mit den gleichen Argumenten auf. 6-9
10 Destruktor einer abgeleiteten Klasse Konzept der Destruktor einer abgeleiteten Klasse ruft nach Ausführung seines Methodenkörpers den Destruktor der Basisklasse implizit auf dynamische Attribute können im Destruktor zuerst gelöscht werden, bevor Attribute der Basisklasse gelöscht werden Wann soll ein Destruktor ausprogrammiert werden? wenn die Klasse Attribute enthält, welche dynamisch erzeugt worden sind, so sollen diese Attribute im Destruktor wieder gelöscht werden Wird der Destruktor auch bei einem statisch erzeugten Objekt aufgerufen? Ja! Beim Verlassen des Blocks, in dem das Objekt erstellt worden ist, wird zuerst der Destruktor aufgerufen, bevor das Objekt vom Stack entfernt wird. 6-10
11 Typkonvertierungen von Zeigern Typ einer Zeiger- oder Referenzvariable muss nicht gleich dem Typ des Objektes sein, auf welches die Zeiger-/Referenzvariable verweist bisher: neu: CStudent *pstud = new CStudent(); CPerson *ppers = new CStudent(); implizite (automatische) Zeigertypkonvertierung (Cast) Sohn *psohn = new Sohn(); Vater *pvater = psohn; explizite Zeigertypkonvertierung (Cast) Sohn *psohn = new Sohn(); Vater *pvater = psohn; Sohn *psohn2 = static_cast<sohn *>(pvater); // implizite Typkonvertierung // implizite Typkonvert. // explizite Typkonvert. 6-11
12 Gültige Up- und Down-Casts Up-Cast Konvertierung in einen Zieltyp, der in der Vererbungshierarchie weiter oben liegt implizite Konvertierung immer möglich, wenn der Zieltyp ein Vorfahre ist Down-Cast Konvertierung in einen Zieltyp, der in der Vererbungshierarchie weiter unten liegt nur explizite Konvertierung möglich nur möglich, wenn die Referenz auf ein Objekt des Zieltyps oder einer abgeleiteten Klasse des Zieltyps zeigt Unzulässige explizite Typkonvertierung Verwendung von C-Cast oder static_cast kann zu einem Fehler zur Laufzeit führen Verwendung von dynamic_cast gibt 0 zurück, bei Zeigervariablen wirft bad_cast Exception bei Referenzvariablen 6-12
13 Beispiele zu (un-)gültigen Casts class A { int m_a; }; class B: public A { int m_b; }; class C: public B { int m_c; }; class D { int m_d; }; public static void main(string[] args) { B *b = new C(); // Referenz vom Typ B auf ein neues // Objekt der Klasse C. // Impliziter Cast nach B. A *a = b; C *c = (C *) b; // Impliziter Cast zu einer Basisklasse. // Expliziter Cast zur ursprüngl. Klasse C *c2 = (C *) a; // Expliziter Cast von A zur // ursprünglichen Klasse. } D *d = (D *) b; // Fehler, da D nichts mit C zu tun hat. 6-13
14 Identifikation der Klasse eines Objektes Problem ein Down-Cast muss gültig sein, sonst kann es zu einem Laufzeitfehler kommen wie kann man erkennen, ob ein Down-Cast gültig ist? Lösung Verwendung von Run-Time Type Information (RTTI) dynamic_cast < Zieltyp >( Zeigervariable ) bei ungültiger Konvertierung wird 0 zurückgegeben Beispiele Vater *pv1 = new Vater(); Vater *pv2 = new Sohn(); Sohn *s1 = dynamic_cast<sohn *>(pv2); // gültiger Down-Cast s1 == pv2 Sohn *s2 = dynamic_cast<sohn *>(pv1); // ungültiger Down-Cast s2 ==
15 Typinformation (bei RTTI) Wie funktioniert dynamic_cast? Für jeden verwendeten Typ existiert eine Typinformation. Diese Typinformation kann in einem speziellen Typinformationsobjekt abgelegt sein. Operator typeid Syntax: type_info& t = typeid(* Zeigervariable); gibt Referenz auf Typ-Informationsobjekt zurück Voraussetzungen RTTI wird verwendet #include <typeinfo> Beispiel Vater *pvater = new Vater(); Vater *psohn = new Sohn(); const type_info& t1 = typeid(*pvater); const type_info& t2 = typeid(*psohn); if (t1 == t2) cout << "beide Typen sind gleich" << endl; if (t1.before(t2)) cout << "t1 ist eine Basisklasse von t2" << endl; 6-15
16 Überladen von Methoden Methoden überladen Methoden mit dem gleichen Namen, aber mit unterschiedlicher Parameterliste werden angeboten Szenario Basisklasse und abgeleitete Klasse enthalten beide eine Methode f void Vater::f(char) void Sohn::f(int) Welche Methode wird aufgerufen? Sohn s; s.f(5); s.f( A ); // Sohn::f wird aufgerufen, ok! // Sohn::f wird aufgerufen, warum? Wie kann f von Vater aufgerufen werden? wenn die Sohn-Klasse die Methode f ihres Vaters anbietet: using Vater::f; oder explizit aufrufen: s.vater::f( A ); 6-16
17 Verdecken und Überschreiben Verdecken abgeleitete Klassen können Datenfelder enthalten, die den gleichen Namen haben wie Datenfelder in den Basisklassen sollte wenn möglich vermieden werden Überschreiben abgeleitete Klassen können Methoden enthalten, die die genau gleichen Signaturen haben wie Methoden in den Basisklassen wird sinnvoll eingesetzt 6-17
18 Verwendung verdeckter Attribute class Vater { protected: int x; }; class Sohn: public Vater { int x; public: Sohn(int xx) : x(xx) { cout << "x des Sohnes: " << x << endl; cout << "x des Sohnes: " << this->x << endl; cout << "vom Vater geerbtes x: " << Vater::x << endl; cout << "vom Vater geerbtes x: " << static_cast<vater *>(this)->x<< endl; } }; 6-18
19 Polymorphie (Vielgestaltigkeit) Polymorphie von Operationen gleiche Methodenaufrufe in verschiedenen Klassen führen zu klassenspezifischen Anweisungsfolgen Beispiel: pperson->print() vs. pstudent->print() Polymorphie von Objekten (nur bei Vererbungshierarchien) an die Stelle eines Objektes in einem Programm kann auch ein Objekt einer abgeleiteten Klasse treten ein abgeleitetes Objekt ist polymorph: es kann sich auch als Objekt einer Basisklasse ausgeben Beispiel: ein Student verhält sich wie ein Student, kann sich aber auch wie eine Person verhalten 6-19
20 Überschreiben von Methoden (1) Idee in einer abgeleiteten Klasse wird eine Methode überschrieben die überschriebene Methode hat die gleiche Signatur (Name und Parameterliste) Beispiel und den gleichen Rückgabetyp oder bei Referenz-/Zeigertyp auch eine Spezialisierung davon class CPerson { virtual void print() { } }; class Cstudent : public CPerson { }; virtual void print() override { // in C++11 soll die Methode explizit als } CPerson::print(); // überschrieben gekennzeichnet werden // Aufruf der Methode print() aus der Basisklasse 6-20
21 Überschreiben von Methoden (2) statische Bindung: Methoden sind nicht virtual der statische Typ des Objekts, Zeigers oder Referenz entscheidet über die Wahl der aufgerufenen Methode dynamische Bindung: Methoden sind virtual Polymorphie kommt nicht zum Einsatz falls die Methode nicht über einen Zeiger bzw. Referenz aufgerufen wird Polymorphie kommt zum Einsatz und der dynamische Typ des Zeigers oder der Referenz entscheidet über die Wahl der aufgerufenen Methode Beispiele Vater v, *pv; Sohn s, *ps = new Sohn(); v = s; v.do_it(); pv = ps; pv->do_it(); Vater& rv = s; rv.do_it(); // do_it() der Klasse Vater wird aufgerufen // do_it() der Klasse Sohn wird aufgerufen // do_it() der Klasse Sohn wird aufgerufen 6-21
22 Vererbung unterbinden (C++11) Vererbung einer Klasse verunmöglichen mit final markierte Klasse kann nicht abgeleitet werden Beispiel class B { }; class C final : B { }; class D : C { }; // führt zu einer entsprechenden Fehlermeldung Überschreiben von Methoden verunmöglichen mit final markierte Methode darf in abgeleiteter Klasse nicht überschrieben werden Beispiel struct B { virtual void f(int) {} }; struct C : B { void f(int) final override {} }; struct D : C { void f(char) {} void f(int) {} }; // neue Methode, weil andere Signatur // führt zu einer entsprechenden Fehlermeldung 6-22
23 Zuweisungsoperator und Vererbung anonymes Subobjekt der Oberklasse wird als Element aufgefasst falls für eine abgeleitete Klasse kein eigener Zuweisungsoperator definiert ist, so wird das anonyme Subobjekt der Oberklasse mit seinem zugehörigen Zuweisungsoperator zugewiesen und für die neuen Attribute gilt der übliche Ansatz Probleme im Zusammenhang mit Polymorphie Beispiel: CSohn sohn1, sohn2; CVater& rvater1 = sohn1; CVater& rvater2 = sohn2; rvater1 = sohn2; // CVater::operator=(const CSohn&)? Fehlermeldung virtueller Zuweisungsoperator in C++03 implizit generierter Zuweisungsoperator ist nie virtuell virtuelle Methode assign() stattdessen verwenden virtueller Zuweisungsoperator in C++11 virtual CVater& operator=(const CVater&) = default; 6-23
24 Statische und dynamische Bindung Bindung Zuordnung eines Methodenrumpfes zum Aufruf einer Methode statische (frühe) Bindung Zuordnung erfolgt zum Kompilierzeitpunkt wird für alle nicht-virtuellen Methoden verwendet dynamische (späte) Bindung Zuordnung erfolgt erst zur Laufzeit des Programms sehr mächtiges Konzept, weil es die Wiederverwendung von Programmcode drastisch erhöht muss explizit mit dem Schlüsselwort virtual deklariert werden 6-24
25 Schlüsselwort virtual Sinnvolle Verwendung wird eine Methode in einer Basisklasse als virtual deklariert, so sind auch alle überschriebenen Varianten davon virtual Destruktoren von Klassen, welche dynamischen Speicher verwenden, sollten virtual sein, um sicherzustellen, dass die Objekte vollständig gelöscht werden, auch dann wenn der statische Typ eines Zeigers nicht vom gleichen Typ wie das zu löschende Objekt ist eine virtuelle Methode kann (pure virtual) also ohne Implementierung und somit abstrakt sein virtual void methodname() = 0; eine Klasse mit mindestens einer abstrakten Methode ist selber abstrakt Unsinnige bzw. unerlaubte Verwendung Konstruktoren können nicht virtual sein virtuelle private Methoden sind unsinnig, da die Zugriffsrechte nicht ausreichen, um überschriebene Methoden der Basisklasse aufzurufen 6-25
26 Zugriffsrechte Zugriffsrechte der Basisklasse Basisklasse geerbt als Zugriffsrechte der abgeleiteten Klasse public protected private public protected private public protected private public protected private public protected No access 1 protected protected No access 1 private private No access 1 1 Unless friend declarations within the base class explicitly grant access. 6-26
27 Mehrfachvererbung Beispiels aus der Welt der grafischen Objekte hier mit gemeinsamer Basisklasse (ist nicht notwendig) Probleme: Namenskonflikte, Mehrdeutigkeiten - text «abstract» ObjMitText + zeichnen() «abstract» GraphObj - position + getpos() + zeichnen() Rechteck - breite, hoehe + zeichnen() RechteckMitText + zeichnen() 6-27
28 Probleme der Mehrfachvererbung Beispiel Rechteck r(0, 0, 20, 50); RechteckMitText br(10, 5, 60, 60, "Text"); r.zeichnen(); // ruft zeichnen() von Rechteck auf br.zeichnen() // ruft zeichnen() von RechteckMitText auf Position rpos = r.getpos(); Position brpos = br.getpos(); GraphObj *pobj = &br; // gibt Ursprung des Rechtecks zurück // Compiler-Fehler // Compiler-Fehler Warum ein Compiler-Fehler? br.getpos() ist nicht eindeutig, denn es könnte getpos() von RechteckMitText oder von Reckteck aufgerufen werden Ursache: Teilobjekt position ist zweimal vorhanden und nicht beide Teilobjekte müssen identisch sein 6-28
29 Lösung: Virtuelle Basisklassen class Rechteck : virtual public GraphObj { }; // Rest normal class ObjMitText : virtual public GraphObj { }; // Rest normal class RechteckMitText : public ObjMitText, public Rechteck { public: RechteckMitText(int x, int y, int w, int h, string text) : ObjMitText(-2, -2, text), Rechteck(-1, -1, w, h), GraphObj(x, y) {} // Rest normal }; 6-29
30 Virtuelle Basisklassen und Initialisierung Definition vollständiges Objekt: Objekt, das nicht als Teilobjekt dient, also nicht in einem andern Objekt durch Vererbung enthalten ist Ausgangslage virtuelle Basisklassen bewirken, dass nur 1 Teilobjekt dieser Basisklasse in Instanzen einer abgeleiteten Klasse angelegt wird Problem welcher Konstruktor ist für die Initialisierung dieses einen Teilobjekts zuständig? im Beispiel: Rechteck( ) oder ObjMitText( )? Antwort Konstruktor der Basisklasse, welcher im Konstruktor eines vollständigen Objektes aufgerufen wird wird kein Konstruktor der Basisklasse explizit aufgerufen, so wird der Standardkonstruktor der Basisklasse verwendet im Beispiel: GraphObj(x, y) wird verwendet 6-30
7 Vererbung. Modul Programmieren mit C++ Kapitel Vererbung
7.1 7 Vererbung Eine von der Basisklasse B abgeleitete Klasse A erbt alle Attribute und Methoden von B. Ein Objekt der Klasse A besitzt ein Slice der Klasse B und ein Slice der Klasse A. Jeder Konstruktor
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrOOP 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
MehrC++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern
C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 2
3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
Mehr11.3 Virtuelle Methoden
11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee void print() const cout
MehrVererbung. Was versteht man unter dem Begriff Vererbung?
Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &
MehrVorkurs Informatik: Erste Schritte der Programmierung mit C++
Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Tag 3: Objektorientiere Programmierung 8. Oktober 2014 Vorkurs Informatik WS 14/15 > Einführung Agenda 1 Einführung
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
MehrEinführung in C++ Vererbung und Polymorphismus
Einführung in C++ Vererbung und Polymorphismus Ablauf Grundlegende Eigenschaften der Vererbung in C++ Redefinition und Namensauflösung Eine einfache Klassenhierarchie in Java und C++ Redefinition von virtuellen
MehrProgrammieren in Java
Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von
Mehr1. 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:
Mehr5.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
MehrProgrammieren - 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.
Mehr3 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
MehrBeispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der
Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrC/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
MehrVerhindert, 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:
MehrProgrammieren in C++ Überladen von Methoden und Operatoren
Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
MehrProgrammieren 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
MehrJava 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
MehrVererbung & 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
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
MehrJava: 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
MehrJava I Vorlesung Vererbung und Sichtbarkeit
Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.
MehrAngewandte 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
MehrVorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus
Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:
MehrAufbau von Klassen. class punkt {...
Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im
MehrAnwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
MehrPräsentation Interfaces
Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben
MehrWintersemester 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
MehrInterfaces und Vererbung
Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren
MehrKapitel 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
MehrTeil 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...
MehrProf. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
MehrKapitel 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
MehrBeziehungen zwischen Objekten
1/19 Beziehungen zwischen Objekten Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/19 Outline 1 Vererbung (Wiederholung)
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrKapitel 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
MehrThemen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren
Themen Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Statische Methoden Klassenmethoden Merkmal der Klasse nicht eines einzelnen Objekts
Mehr3 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
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrGetName(), 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
MehrObjektorientierte 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/
MehrInhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)
MehrAlgorithmen und Datenstrukturen 07
5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7
MehrVererbung. Martin Wirsing. Ziele. Vererbung
2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp
MehrVerwendung von Klassen in C++
Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie
MehrLexikalische Konventionen
# 17 Kap. 3 Lexikalische Konventionen Kap. 3.1 Kap. 3.1.1 Kap. 3.1.2 Kap. 3.2 Kap. 3.2.1 Kap. 3.2.2 Kap. 3.2.3 Kap. 3.2.4 Kap. 3.2.5 Kap. 3.2.6 Zeichenvorrat von Java Programmier-Styleguide Der Unicode
MehrKapitel 10: Subklassen / Vererbung
10. Subklassen/Vererbung 10-1 Objektorientierte Programmierung (Winter 2006/2007) Kapitel 10: Subklassen / Vererbung Deklaration von Subklassen Vererbung von Daten und Funktionen Überschreiben/Redefinition,
MehrJava 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
MehrVererbung und Polymorphie
Vererbung und Polymorphie WiMa-Praktikum 1, Teil C++, Tag 5 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 29.08.08
MehrSWE1 / Übung 9 (11.01.2012)
SWE1 / Übung 9 (11.01.2012) Vererbung Zugriffskontrolle Motivation für Vererbung (1) Objekte in der realen Welt kommen oft in ähnlichen Varianten (Attribute, Verhalten) vor Gliederung durch hierarchische
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung
Mehr2. Vererbung und Polymorphie. Vererbung (1/2) Beispiel (1/2) Vererbung (2/2) Eine Unterklasse wird folgendermaßen definiert
2. Vererbung und Polymorphie Vererbung (1/2) Vererbung mit extends Konstruktoren bei der Vererbung Überladen von Methoden - statische Polymorphie Casten Dynamische Polymorphie Klasse Object Eine Unterklasse
MehrEINI 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
MehrProgrammieren I. Kapitel 8. Vererbung
Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrKlassen in Java. Klassen
Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus
MehrJava, OO und UML Fortsetzung
Java, OO und UML Fortsetzung Das Objektorientierte Paradigma OO bildet keine geschlossene theoretisch abgegrenzte Basis (wie z.b. das Relationsmodell relationaler Datenbanken) OO ist eine Sammlung und
MehrDie abgeleiteten Klassen Kreis und Viereck erben die Elemente des Basisklasse und verfügen über zusätzliche Eigenschaften (Seitenlänge,
Kompaktkurs C++ Vererbung (inheritance) 1 Oft besitzen verschiedene Datentypen einen gemeinsamen Kern: Kreis und Viereck sind geometrische Figuren; sie haben eine Kantenzahl, eine Fläche, einen Umfang
MehrOOP 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 Templates Nochmal zusammengefasst Die Basis der OOP- Zusammengefasst 2 Templates Programmiersprachen
Mehr7. 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
MehrSilke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
MehrWiederholung zur Vorlesung Programmieren
Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben
MehrMethoden. 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
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
MehrDer Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.
Der Operator this Wir betrachten nochmals die Klassendefinition von Ballon. public class Ballon { private int durchmesser; private int x1, y1; private Color farbe =Color.black; // Konstruktor ohne Farbe
MehrKurzeinführung in C/C++ Elementare Datentypen in C++
Elementare Datentypen in C++ Anders als in Java sind in C++ die Größen der Elementaren Datentypen maschinenabhängig Die Größe der Datentypen lässt sich mit sizeof ermitteln: int n=sizeof(int) In C++ gilt
MehrC++ - 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,
MehrEine 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,
MehrProgrammierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.
Programmierkurs Java Vererbung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Ähnlichkeiten zwischen Klassen? Beispiel: Klassen Auto
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
Mehr01. Grundprinzipien der Vererbung
01. Grundprinzipien der Vererbung 1.1 Grundidee der Vererbung Bei der Analyse eines Problems (z.b. Baukasten) stellt man beispielsweise fest, dass 67 % an Daten/Funktionen immer vorkommen 25 % an Daten/Funktionen
MehrPIWIN 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
MehrObjektorientierung: 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
Mehr4 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
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
MehrObjects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0
Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben
MehrObjektorientierte Programmierung
Stefan Brass: OOP (Java), 15. Überladene Methoden 1/22 Objektorientierte Programmierung Kapitel 15: Überladene Methoden Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrC++ - Eine Ubersicht fur Java-Programmierer
C++ - Eine Ubersicht fur Java-Programmierer Daniel Wasserrab Lehrstuhl fur Programmierparadigmen Universitat Karlsruhe 23. April 2008 C++ I Entwickelt Anfang der 80er von Bjarne Stroustrup I Beeinut von
MehrTeil 2: OOP und JAVA (Vorlesung 11)
Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrKurs OPR. Objektorientierte Programmierung
Kurs OPR Objektorientierte Programmierung Lektion: 005-Vererbung, Polymorphismus Zürcher Hochschule für Angewandte Wissenschaften Mitglied der Fachhochschule Zürich Version 1.4 Inhaltsverzeichnis 1 Vererbung
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrKlassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
MehrC++ - 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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
Mehr3. 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