Vorlesung Datenstrukturen
|
|
- Nadine Rosenberg
- vor 7 Jahren
- Abrufe
Transkript
1 Vorlesung Datenstrukturen Objektorientierung in C++ (4) Aspekte der Vererbung (2) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 568
2 Mehrfachvererbung Fleischfresser Pflanzenfresser Allesfresser Eingabeobjekt Radio-Button Slider Textfeld Pop-Up vertikal horizontal Kombifeld Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 569
3 Mehrfachvererbung Idee Weg Eine Klasse kann die Komponenten verschiedener bereits existierender Klassen in sich vereinen (oder verschiedene Schnittstellen besitzen). Eine Klasse erbt alle Komponenten mehrerer Klassen. Dabei muss die Klassenhierarchie einen azyklischen gerichteten Graph repräsentieren. Syntax Bei der Definition einer abgeleiteten Klasse wird die (eine) Basisklasse durch eine kommaseparierte Aufzählung mehrerer Basisklassen ersetzt. Beispiel Wir wollen unserem Architekturszenario Formen hinzufügen, denen zusätzlich Informationen zu verwendeten Materialien (z.b. Holz, Marmor) zugewiesen werden können. Zur Beschreibung der verschiedenen Materialien existiere bereits eine Klasse Texture. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 570
4 Beispiel Mehrfachvererbung class Texture { char name[20]; enum { Stone, Wood, Leather, Textile type; int color; double cost(); // Berechnung der Materialkosten Konkrete texturierte Formen können aus Texture und den Unterklassen von Shape abgeleitet werden, z.b. class TexturedCircle : Circle, Texture { class TexturedRectangle : Rectangle, Texture { verschiedene Texturen Texturierte Instanzen von TexturedCircle und TexturedRectangle Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 571
5 Probleme bei Mehrfachvererbung (1) Namenskonflikt Bei Mehrfachvererbung kann es zu Konflikten kommen, wenn in den Klassen, aus denen abgeleitet wird gleichnamige Komponenten existieren Mehrdeutigkeit Compilerfehler Lösung Reimplementierung oder eindeutige Zuordnung mehrdeutiger Komponenten zu ihrer Herkunftsklasse durch Verwendung des Scope-Operators :: Aber Diese Workarounds können sehr schnell unübersichtlich werden, wenn z.b. mehrere Basisklassen beteiligt sind oder die Vererbung über mehrere Ebenen erfolgt. Dann besteht die Möglichkeit, dass die Anzahl zu behebender Namenskonflikte exponentiell wächst. Achtung Problematik besteht auch bei gleichnamigen Methoden mit unterschiedlicher Signatur! Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 572
6 Probleme bei Mehrfachvererbung (2) Diamant-Vererbungsmuster Eine Klasse wird von (mindestens) zwei Basisklassen abgeleitet, die ihrerseits von einer gemeinsamen Basisklasse abgeleitet werden. Bei diesem Vorgang entsteht ein typisches diamantartiges Muster in der Vererbungshierarchie. Beispiele Person Gerät Angestellter Student Drucker Scanner Hiwi Kopierer Problem Neben den schon beschriebenen Problemen der Vorfolie werden bei Erzeugung einer Instanz in der Enkelklasse mehrere Instanzen in der Großvaterklasse erzeugt Mehrdeutigkeit meist semantisch nicht gewünscht (z.b. bei Hiwi oder Kopierer). Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 573
7 Probleme bei Mehrfachvererbung (3) Lösung Diamant-Problem Die Mehrfachinstanziierung lässt sich mit Hilfe virtueller Basisklassen beheben. Aber Komplexe Regeln, besonders Reihenfolge von Konstruktion und Destruktion Allgemeines Fazit Aufgrund der beschriebenen Probleme sollte man Mehrfachvererbung nur dann einsetzen, wenn man genau weiß, was man macht. Sehr häufig kann man auf die Mehrfachvererbung (zumindest vollständiger Klassen) verzichten. Alternative Einschränkung des Konzeptes auf die Mehrfachvererbung von Interfaces. Mehrfachvererbung bei Interfaces ist wesentlich weniger problembehaftet und wird häufig praktiziert. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 574
8 Interfaces Sorry - I never interface on the first date. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 575
9 Interfaces Definition Interfaces sind eine besondere Form einer abstrakten Klasse, sie dürfen ausschließlich abstrakte Methoden und Konstanten enthalten. Bedeutung Interfaces kann man sich als Vertrag zwischen dem Ersteller und dem Nutzer einer Klasse vorstellen. Wenn eine Klasse ein Interface implementiert, dann garantiert sie die Bereitstellung aller im Interface deklarierten Methoden. Interfaces werden hauptsächlich verwendet, um gleiche Eigenschaften oder Fähigkeiten durchaus völlig verschiedener Klassen ausdrücken zu können. Syntax In C++ handelt es sich bei Interfaces lediglich um die Konvention, dass eine Interface- Klasse ausschließlich abstrakte Methoden aufweisen darf. Aufgrund der herausragenden Bedeutung von Interfaces werden diese in anderen Programmiersprachen (z.b. Java oder C#) durch eigene Sprachkonstrukte realisiert, obwohl sie auch dort letztendlich nur eine Spezialform abstrakter Klassen sind. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 576
10 Anwendungsszenario 1 Für unser Architekturbeispiel soll eine Materialkostenberechnung anhand des benötigten Rohmaterials erfolgen. Allerdings kann das Rohmaterial nur in rechteckiger Form bestellt werden, d.h. dass bei Kreisen nicht wiederverwendbarer Verschnitt anfällt. Um Kosten zu sparen, soll der Verschnitt so gering wie möglich ausfallen. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 577
11 Anwendungsszenario 2 Ein Verpackungsmittelhersteller möchte für völlig unterschiedliche Produkte Kartons herstellen. Dazu muss er zunächst wissen, wie viel rechteckige Grundfläche ein beliebig geformtes Produkt zum Verpacken benötigt. Um Kosten zu sparen, sollte diese natürlich so klein wie möglich ausfallen. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 578
12 Beispiel Ziel Ein Interface für beide Anwendungsszenarien Bounding Rectangle Ein Bounding Rectangle (BR) ist ein minimales Rechteck, das eine geometrische Form vollständig umfasst. Definition eines Interface für ein BoundingRectangle class BoundingRectangle { virtual double boundingwidth() = 0; // Breite des BR virtual double boundingheight()= 0; // Höhe des BR virtual double boundingarea() = 0; // Flächeninhalt des BR Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 579
13 Interface-Implementierung (1) Grundsatz Klassen, die ein Interface nutzen wollen, müssen es selbst implementieren. Weg Eine Interface-Klasse wird eine Basisklasse der Klasse, die die Funktionalität, die das Interface beschreibt, nutzen möchte. Dazu erbt sie die abstrakten Methoden der Interface- Klasse und muss diese im Anschluss implementieren. Syntax Da Interfaces Klassen sind, verwenden wir die bereits bekannte Vererbungssyntax. Mehrfachvererbung Eine Klasse kann mehrere Interface-Klassen implementieren und demzufolge von mehreren Basis-(Interface-)Klassen abgeleitet werden. Da jedoch keine Komponenten oder Implementierungen vererbt werden, ist diese Form der Mehrfachvererbung i.d.r. unkritisch. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 580
14 Beispiel class BoundingRectangle { virtual double boundingwidth() = 0; virtual double boundingheight()= 0; virtual double boundingarea() = 0; r boundingwidth boundingheight class Circle : Shape, BoundingRectangle { double r; double area() { return PI * r * r; double boundingwidth() { return 2 * r; double boundingheight() { return boundingwidth(); double boundingarea() { return boundingwidth() * boundingheight(); Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 581
15 Interface-Implementierung (2) Abstrakte Klassen Abstrakte Klassen können Interfaces implementieren, müssen jedoch nicht alle Methoden ihrer Interfaces implementieren. Klassen bleiben solange abstrakt, bis alle Methoden ihrer Interfaces implementiert sind. Klassenvererbung Implementierte Interfaces werden natürlich auch an Unterklassen vererbt. So könnte z.b. die Klasse Square die BoundingRectangle-Implementierung von Rectangle verwenden. Im Allgemeinen muss jedoch sichergestellt sein, dass dies semantisch funktioniert. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 582
16 Beispielimplementierung (1) class Shape : BoundingRectangle { double x, y; virtual double area() = 0; /* Eine Methode des Interfaces kann schon hier konkretisiert werden, denn die Fläche eines BR ist immer ein Rechteck */ virtual double boundingarea() { return boundingwidth() * boundingheight(); Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 583
17 Beispielimplementierung (2) class Rectangle : Shape { double a, b; virtual double area() { return a * b; // Methode boundingarea() des Interfaces wird geerbt // restliche Methoden des Interface werden jetzt konkretisiert virtual double boundingwidth() { return a; virtual double boundingheight() { return b; class Square : Rectangle { /* erbt Implementierung von boundingarea(), boundingwidth(), boundingheight() und natürlich die normalen Attribute und Methoden x, y, a, b, area() Allerdings müssen boundingheight() und area() angepasst werden */ virtual double boundingheight() { return a; virtual double area() { return a * a; Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 584
18 Vererbung bei Interfaces Beispiel Zur Komplettierung des Verpackungsszenarios ist die vollständige Ermittlung der Kartongrößen für ein beliebiges zu verpackendes Objekt nötig. Höhe und Breite sind (nach Implementierung von BoundingRectangle) schon bekannt, nur die Tiefe fehlt noch. Es bietet sich eine Erweiterung von BoundingRectangle an, so dass auch 3D-Objekte umfasst werden können. class BoundingBox : BoundingRectangle { virtual double boundingdepth() = 0; virtual double boundingvolume() = 0; Nicht vergessen! boundingdepth Bevor eine Klasse, die das Interface BoundingBox implementiert, instanziiert werden kann, muss sie auch die Methoden von BoundingRectangle implementieren! Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 585
19 Interface als Objekttyp Eine Interface-Klasse definiert einen generischen Objekttyp, der Objekte aus völlig verschiedenen Klassenhierarchien umfassen kann, solange diese das Interface implementieren. Beispiel - Parameter einer Methode double cumulativearea( BoundingRectangle* br[] ) { Es ist als Argument nur ein Feld von Zeigern zulässig, die auf Objekte verweisen, deren Klassen das Interface BoundingRectangle implementieren. Beispiel - Erzeugen neuer Objektbehälter BoundingRectangle* pbr, BoundingRectangle* brarray[10]; Der Zeiger pbr und die Elemente von brarray können nur auf Objekte verweisen, die das Interface BoundingRectangle implementieren. pbr = new Square; brarray[0] = new Circle; Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 586
20 Bewertung des Interface-Konzepts Pro einheitliche Behandlung unterschiedlicher Klassen Schaffung völlig generischer Objekttypen Vermeidung der meisten Probleme der Mehrfachvererbung Contra keine Vererbung von Implementierungen Gefahr der Codeverdopplung Problem bei Mehrdeutigkeit (z.b. beim gleichzeitigen Implementieren gleichnamiger und gleichsignierter Methoden zweier Interface-Klassen) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 587
21 Bewertung des Interface-Konzepts Contra keine Vererbung von Implementierungen Gefahr der Codeverdopplung Problem bei Mehrdeutigkeit (z.b. beim gleichzeitigen Implementieren gleichnamiger und gleichsignierter Methoden zweier Interface-Klassen) Abhilfe (in C++) Da C++ (im Gegensatz zu Java oder C#) Mehrfachvererbung nicht nur für Interfaces unterstützt, können wir u.u. statt reiner Interface-Klassen abstrakte Klassen verwenden: Methoden, die in beliebigen abgeleiteten Klassen unverändert genutzt werden und bzgl. Mehrfachvererbung unkritisch sind, werden implementiert (und demzufolge auch weitervererbt) keine Codeverdopplung Methoden, die abhängig von konkreten Unterklassen oder bzgl. Mehrfachvererbung kritisch sind, bleiben abstrakt Flexibilität bzgl. abgeleiteter Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 588
22 Beispiel BoundingRectangle Abstrakte Klasse Die bisherige Interface-Klasse BoundingRectangle realisieren wir jetzt als abstrakte Klasse: class BoundingRectangle { virtual double boundingwidth() = 0; // abstrakte Methode virtual double boundingheight()= 0; // abstrakte Methode virtual double boundingarea() { // konkrete Methode return boundingwidth() * boundingheight(); Gewinn Wir sparen uns die u.u. mehrfache (und identische) Implementierung von boundingarea() in abgeleiteten Klassen wie Shape. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 589
23 Beispiel BoundingBox Abstrakte Klasse Analog können wir die von BoundingRectangle abgeleitete Interface-Klasse BoundingBox jetzt ebenfalls als abstrakte Klasse realisieren, indem wir BoundingVolume() implementieren: class BoundingBox : BoundingRectangle { virtual double boundingdepth() = 0; // abstrakte Methode virtual double boundingvolume() { // konkrete Methode return boundingdepth() * boundingarea(); Resultat Wiederum sparen wir uns die u.u. mehrfache (und identische) Implementierung von boundingbox() in abgeleiteten Klassen. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 590
24 Generische Vergleichsoperatoren Wunsch Bereitstellung der bekannten Vergleichsoperatoren ==,!=, <, >, <= und >= für beliebige Objekttypen. Problem Vergleichsmethodik für Objekte ist vom Objekttyp (Klassenzugehörigkeit) abhängig. Lösung Wir deklarieren == und > als abstrakte Methoden und führen alle anderen Vergleichsoperatoren als konkrete Methoden darauf zurück. Vorteil In abgeleiteten Klassen müssen lediglich == und > individuell implementiert werden. Alle anderen Vergleichsoperatoren stehen automatisch zur Verfügung. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 591
25 Die Klasse Comparator class Comparator { public: virtual bool operator == ( Comparator& o ) = 0; // abstrakte Methoden virtual bool operator > ( Comparator& o ) = 0; ; virtual bool operator!= ( Comparator& o ) { return!( *this == o ); virtual bool operator >= ( Comparator& o ) { return ( *this > o ) ( *this == o ); virtual bool operator <= ( Comparator& o ) { return ( o >= *this ); virtual bool operator < ( Comparator& o ) { return ( o > *this ); // konkrete Methoden Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 592
26 Vergleich bei Klasse Shape Ziel Vergleich geometrischer Formen >= == Vergleichskriterium Ein Vergleich geometrischer Formen auf Basis des Flächeninhalts erscheint sinnvoll. Allerdings wären auch andere Kriterien (z.b. Umfang oder Höhe) denkbar. Implementierung Das Vergleichskriterium Flächeninhalt wird in jeder von Shape abgeleiteten Klasse individuell berechnet. Da aufgrund des explizit definierten Polymorphismus die Auswahl der passenden area()-methode automatisch erfolgt, bietet sich eine einmalige Implementierung von > und == innerhalb der abstrakten Klasse Shape an. Diese kann dann völlig unverändert von den abgeleiteten Klassen verwendet werden. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 593
27 Shape mit Vergleichsoperatoren class Shape : public BoundingRectangle, public Comparator { protected: double x, y; public: virtual double area() = 0; bool operator == ( Comparator& o ) { return ( area() == ((Shape &)o).area() ); bool operator > ( Comparator& o ) { ; return ( area() > ((Shape &)o).area() ); Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 594
28 Nachbetrachtung? Generizität von Vergleichen Mit Hilfe der generischen Vergleichsoperatoren können zwei Instanzen eines beliebigen Objekttyps miteinander verglichen werden. Einzige Bedingung ist, dass die abstrakte Klasse Comparator (und damit lediglich die beiden Methoden / Operatoren > und == ) vollständig implementiert sein muss. Direkter Vergleich verschiedener Klassen Sogar Objekte unterschiedlicher Klassen können direkt miteinander verglichen werden, wenn > und == dies ermöglichen (z.b. auf Basis von area() ). Anwendung generischer Vergleiche Fazit Auf Basis der generischen Vergleichsoperatoren könnte z.b. ein generisches Sortierverfahren realisiert werden, das Elemente beliebiger Objekttypen sortiert. Abstrakte Klassen und Interfaces sind ein äußerst flexibles und mächtiges Konzept. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 595
29 Ende der Lehrveranstaltung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 596
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation
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
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrGrundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.
Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
MehrHSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2
HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
Mehr4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts
MehrVererbung. Oberklassen und Unterklassen
Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
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
MehrÜberblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrProgrammieren 1 09 Vererbung und Polymorphie
Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrGrundlagen der Informatik
Grundlagen der Informatik Polymorphie, Abstrakte Klassen, Mehrfachvererbung Prof. Dr.-Ing. Thomas Wiedemann Prof. Dr. rer.nat. Ralph Großmann Fachgebiet Informatik / Mathematik Überblick zum Inhalt Klassen-3
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
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment
MehrÜbersicht. Bisherige Verwendung von Klassen Vererbung. Zeiger auf Objekte (abgeleiteter) Klassen Virtuelle Funktionen Konstruktoren/Destruktoren
C++ - Vererbung Übersicht Bisherige Verwendung von Klassen Vererbung Grundlagen Zugriffschutz Vererbte Funktionen Zeiger auf Objekte (abgeleiteter) Klassen Virtuelle Funktionen Konstruktoren/Destruktoren
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
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.
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
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 &
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 10. Vererbung und Polymorphie Vererbung und Polymorphie in C++ Seite 2 Klassen können von anderen Klassen
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
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,
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrInformatik II Übung, Woche 17
Giuseppe Accaputo 28. April, 2016 1. Vererbung 2. Vorbesprechung Übung 8 Plan für heute 3. Erweiterung des Vorlesungsverzeichnis (VVZ) (Live-Programmierung) Informatik II (D-BAUG) Giuseppe Accaputo 2 Vererbung
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrUniversität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrInfo B VL 8: Abstrakte Klassen & Interfaces
Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte
MehrAbstrakte Klassen, Interfaces
Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
MehrAbgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrEnhanced Collection API
Enhanced Collection API Die default und static Methoden der Collection API des JDK 1.8 Prof. Dr. Nikolaus Wulff Schnittstelle und Implementierung Die Sprache Java trennte von Anfang an eine Schnittstelle
MehrJava für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
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
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
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
MehrInnere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11
MehrExkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen
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
MehrHumboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung. 6. Übungsblatt
Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung Prof. Redlich 6. Übungsblatt 21 (+4) Punkte Abgabe bis 31.01.2010 (08:00 Uhr) über GOYA Aufgabe
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrObjektorientierte Programmierung. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
MehrVererbung, Polymorphismus
Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign
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
MehrObjektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern
Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrObjektorientierte Programmierung III
Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen
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
MehrPrinzipien der objektorientierten Programmierung (OOP)
Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm
MehrAbschnitt 9: Schnittstellen: Interfaces
Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung
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
MehrÜberblick. Überblick zum weiteren Inhalt
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
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
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
MehrErsetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
MehrZusammenfassung. Mit bjam und ein paar Zeilen in einem Jamroot oder Jamfile lässt sich das Kompilieren und Linken einfach automatisieren
Zusammenfassung Deklaration einer Klasse im Header-File /.h-file Header-Files mit #pragma once vor double inclusion schützen möglichst Vorwärts-Deklarationen verwenden statt include-files einzubinden mindestens
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrHeute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.
Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis
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
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
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
MehrVererbung. CoMa-Übung XI TU Berlin. CoMa-Übung XI (TU Berlin) Vererbung / 47
Vererbung CoMa-Übung XI TU Berlin 16.01.2013 CoMa-Übung XI (TU Berlin) Vererbung 16.01.2013 1 / 47 Themen der Übung Themen heute Evaluation Rücksprachen IDEs Eclipse & Netbeans Packages, innere Klassen
MehrSystemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -
Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 5 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
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
MehrTafelübung 07 Algorithmen und Datenstrukturen
Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
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
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrObjektorientiertes Programmieren mit C++ für Fortgeschrittene
BEREICH DATENTECHNIK I CQ 300 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 3 3. Mehrfachvererbung 3.1. Eigenschaften und Problematik 3.2. Virtuelle Basisklassen BEREICH
MehrKlassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete
2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober 2001 Stefan Holland Informatik II Hinweise: Klausur II Verwenden Sie für Ihre Lösungen ausschließlich
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette
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
Mehrpue08 December 9, 2016
pue08 December 9, 2016 1 Aufgabe 1: Ein einfaches Zeichenprogramm 1.1 a) Erstellen Sie eine Klasse Square mit den folgenden Eigenschaften: Objektvariablen: - width: Seitenlänge (default: 0) - color: Füllfarbe
MehrLambda-Funktionen. Lambda-Funktionen. Lambda-Funktionen sollen
Lambda-Funktionen Lambda-Funktionen sind Funktionen ohne Namen. definieren ihre Funktionalität an Ort und Stelle. können wie Daten kopiert werden. können ihren Aufrufkontext speichern. Lambda-Funktionen
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
Mehr