UML Flashcards
Was ist Vererbung in Bezug auf die Grundprinzipien der OOP?
- Mit der Vererbung ist es möglich, Gemeinsamkeiten von ähnlichen Klassen in einer Basisklasse zusammenzufassen.
- Das Prinzip kann sowohl der Spezialisierung als auch der Verallgemeinerung dienen. Die Member der Basisklasse (der Vererbenden) werden von ihren Subklassen (den Erben) übernommen.
- Subklasse übernimmt alle Member der Basisklasse, die public oder protected sind. Member können auch überschrieben werden. Sie werden dann mit dem gleichen Namen in der Subklasse deklariert.
Wie sieht Vererbung bei OOP aus?
- Ein offener Pfeil zeigt von der Subklasse auf ihre Basisklasse
- Der Name der Basisklasse wird durch ZWEI Doppelpunkte getrennt hinter den Namen der Subklasse eingetragen
Was ist mehrstufige Vererbung bei OOP?
- Theoretisch können Klassen beliebig verschachtelt werden. Eine Subklasse kann also eine Basisklasse haben, die ihrerseits eine Subklasse ist.
- Ein sequentielles, mehrstufiges Erben macht je nach Anwendungszweck durchaus Sinn
Was ist Mehrfachvererbung bei OOP?
- Über die mehrstufige Vererbung hinaus ist die Mehrfachvererbung möglich, wobei eine Subklasse von mehreren Klassen abgeleitet wird
- In der Programmierpraxis ist das wenig beliebt
- Das mehrstufige Erben wird nicht als Mehrfachvererbung bezeichnet
Nennen Sie ein Beispiel für Vererbung in der OOP.
• materielle und immaterielle Produkte haben gemeinsam:
o eine Bezeichnung
o eine Seriennummer
o lassen sich erwerben
• Diese werden von der Basisklasse übernommen
Was versteht man in der OOP unter Abstraktion?
- Abstraktion ist die Umkehrung von Vererbung
- Man bildet eine allgemein Superklasse, die die gemeinsamen Anteile ihrer Subklassen beschreibt
- Eine abstrakte Klasse stellt dabei die höchste Abstraktionsstufe dar.
- Sie ist so allgemein gehalten, dass sie keine konkreten Objekte beschreiben soll. Sie ist nur als Basisklasse zur Vererbung vorgesehen
- Sie beantwortet die Frage nach dem was, aber nicht nach dem wie.
Wie sieht Abstraktion in UML aus?
- Abstrakte Klassen und Attribute werden im UML-Klassendiagramm kursiv geschrieben
- Alternativ {abstract} vor den Klassen- oder Attributnamen
Was versteht man in der OOP unter Kapselung?
- Aus dem allgemeinen Modulprinzip hat die Objektorientierung das Prinzip der Kapselung übernommen
- Entkopplung der internen Darstellung von Attributen und Methoden von ihrer externen Nutzung
- Durch Schnittstellenkonzept nur Festlegung, wie sich die Methoden verhalten
- Vorteil: z.B. Ersetzen eines veralteten Algorithmus durch einen Verbesserten, ohne dass dadurch die anderen Programmteile „gestört“ werden.
Woher kennen wir die Grundzüge der Kapselungen in OOP?
- Von den Sichtbarkeitsmodifikationen
* von der Signatur
Wo finden Kapselungen in der OOP Anwendung?
• Schnittstellengedanke:
o Dabei wird davon ausgegangen, dass eine vereinbarte Signatur als Schnittstellendefinition ausreichend ist und die Implementierung nicht relevant für die „Außenwelt“ ist, da Eingang und Ausgang der „Blackbox“ bekannt sind.
Wie kann mit Hilfe von Kapselungen eine Funktion auf einen professionelleren Stand gebracht werden?
• Durch Beachtung der Kapselungen wird die Signatur nicht geändert • Funktion weiterhin operabel, denn: o Input gleich o Output gleich o Funktionsweise dringt nicht nach außen
Was ist Polymorphismus in der OOP?
- In der Objektorientierung versucht man, dem menschlichen Verständnis und Verhalten möglichst nahe zu kommen.
- Symbole und Begriffe werden oft mit unterschiedlichen Ausprägungen mehrfach verwendet. Das kennen wir z.B. schon von Ein- und Ausgabemethoden für die Console
- Kann man bestimmte Methoden aus unterschiedlichen Klassen gleicher Weise verstehen, werden diese mit oft dem gleichen Bezeichner versehen, obwohl ihre Algorithmen klassenabhängig unterschiedlich sein können.
Wie funktioniert Polymorphismus in der OOP?
• am Beispiel Fläche der Geometrie
o Algorithmen zur Flächenberechnung bei unterschiedlichen Flächen unterschiedlich, aber die gleiche Bezeichnung wird verwendet
o Durch Bindung an den Kontext (hier: Klasse) wird jeweils der passende Algorithmus benutzt.
Nennen Sie Vor- und Nachteile der Objektorientierung (OOP).
• Vorteile:
o Keine Trennung von Funktionen und Daten
o Direkte Abbildung realer Objekte
o Durchgängige Methodik für Analyse, Entwurf und Implementierung
o Wiederverwendbarkeit vorhandener Softwaremodule
o Reduzierter Programmieraufwand durch Vererbungsmechanismus
o Evolutionäre Entwicklung
• Nachteile:
o Hoher Schulungsaufwand
o Hohe Anfangskosten beim Umstieg auf objektorientierte Methodik
o Hohe Anforderungen an das Abstraktionsvermögen