Podcast
Questions and Answers
Welche der folgenden Aussagen beschreibt die Beziehung zwischen einer Subklasse und einer Superklasse im Kontext der Vererbung in UML am präzisesten?
Welche der folgenden Aussagen beschreibt die Beziehung zwischen einer Subklasse und einer Superklasse im Kontext der Vererbung in UML am präzisesten?
- Die Subklasse ist eine spezialisierte Form der Superklasse und erbt deren allgemeine Attribute und Verhalten. (correct)
- Die Subklasse ist eine generalisierte Form der Superklasse und erweitert deren allgemeine Eigenschaften.
- Die Superklasse und die Subklasse sind unabhängige Entitäten ohne direkte Beziehung zueinander.
- Die Superklasse ist eine spezialisierte Form der Subklasse und erbt deren spezifische Attribute.
Wie wird eine Generalisierungsbeziehung (Vererbung) in UML grafisch dargestellt?
Wie wird eine Generalisierungsbeziehung (Vererbung) in UML grafisch dargestellt?
- Als ausgefülltes Dreieck an der Seite der Subklasse, verbunden mit der Superklasse durch eine durchgezogene Linie.
- Als Raute an der Seite der Superklasse, verbunden mit der Subklasse durch eine gestrichelte Linie.
- Als Kreis an der Seite der Subklasse, verbunden mit der Superklasse durch eine doppelte Linie.
- Als hohles Dreieck an der Seite der Superklasse, verbunden mit einer oder mehreren Subklassen durch eine durchgezogene Linie. (correct)
Welche der folgenden Bezeichnungen wird NICHT synonym für eine Superklasse im Kontext der Vererbung verwendet?
Welche der folgenden Bezeichnungen wird NICHT synonym für eine Superklasse im Kontext der Vererbung verwendet?
- Elternklasse
- Abgeleitete Klasse (correct)
- Superclass
- Basisklasse
Welche Aussage beschreibt am besten den Zweck der Vererbung in der objektorientierten Modellierung?
Welche Aussage beschreibt am besten den Zweck der Vererbung in der objektorientierten Modellierung?
Angenommen, Sie modellieren ein System für ein Universitätsverwaltung. Sie haben eine Superklasse Person
mit Attributen wie Name, Adresse und Geburtsdatum. Welche der folgenden Klassen wäre am wahrscheinlichsten eine Subklasse von Person
?
Angenommen, Sie modellieren ein System für ein Universitätsverwaltung. Sie haben eine Superklasse Person
mit Attributen wie Name, Adresse und Geburtsdatum. Welche der folgenden Klassen wäre am wahrscheinlichsten eine Subklasse von Person
?
Welche der folgenden Aussagen beschreibt am besten den Zweck von protected
Zugriffsmodifikatoren im Kontext der Vererbung?
Welche der folgenden Aussagen beschreibt am besten den Zweck von protected
Zugriffsmodifikatoren im Kontext der Vererbung?
Wie modelliert IFC Bauelemente unter Verwendung des OO-Konzepts der Vererbung?
Wie modelliert IFC Bauelemente unter Verwendung des OO-Konzepts der Vererbung?
Angenommen, eine Basisklasse deklariert eine private
Variable. Welche der folgenden Aussagen trifft zu?
Angenommen, eine Basisklasse deklariert eine private
Variable. Welche der folgenden Aussagen trifft zu?
Was bedeutet 'Package Visibility' im Kontext der Vererbung?
Was bedeutet 'Package Visibility' im Kontext der Vererbung?
Welche der folgenden Aussagen beschreibt am besten den Unterschied zwischen protected
und public
Zugriffskontrolle im Kontext der objektorientierten Programmierung und Vererbung?
Welche der folgenden Aussagen beschreibt am besten den Unterschied zwischen protected
und public
Zugriffskontrolle im Kontext der objektorientierten Programmierung und Vererbung?
Welche der folgenden Aussagen beschreibt NICHT korrekt die Verantwortlichkeiten der Resource Layer im IFC-Modell?
Welche der folgenden Aussagen beschreibt NICHT korrekt die Verantwortlichkeiten der Resource Layer im IFC-Modell?
Welche Funktion wird NICHT von der Kernel-Schema innerhalb der Core Layer des IFC-Modells übernommen?
Welche Funktion wird NICHT von der Kernel-Schema innerhalb der Core Layer des IFC-Modells übernommen?
Wie interagieren die Interoperability Layer (IL)-Objekte mit den Objekten der Core Layer im IFC-Modell?
Wie interagieren die Interoperability Layer (IL)-Objekte mit den Objekten der Core Layer im IFC-Modell?
Welche Aussage beschreibt am besten die Beziehung zwischen der Core Layer und der Domain-specific application layer im IFC-Modell?
Welche Aussage beschreibt am besten die Beziehung zwischen der Core Layer und der Domain-specific application layer im IFC-Modell?
Welche der folgenden Erweiterungen der Core Layer befasst sich hauptsächlich mit der Darstellung von Bauprozessen?
Welche der folgenden Erweiterungen der Core Layer befasst sich hauptsächlich mit der Darstellung von Bauprozessen?
Wie beeinflusst die Möglichkeit zur Änderung des Eigentums an einem Objekt im Laufe der Zeit die Struktur der Resource Layer im IFC-Modell?
Wie beeinflusst die Möglichkeit zur Änderung des Eigentums an einem Objekt im Laufe der Zeit die Struktur der Resource Layer im IFC-Modell?
Was ist der Hauptgrund für die Existenz der Interoperabilitäts-Layer (IL) im IFC-Modell im Kontext des Datenaustauschs zwischen verschiedenen Anwendungen?
Was ist der Hauptgrund für die Existenz der Interoperabilitäts-Layer (IL) im IFC-Modell im Kontext des Datenaustauschs zwischen verschiedenen Anwendungen?
Warum ist es wichtig, dass die Product Extension in der Core Layer Objekte auf einer abstrakten Ebene definiert?
Warum ist es wichtig, dass die Product Extension in der Core Layer Objekte auf einer abstrakten Ebene definiert?
Warum ist es in der Regel besser, eine Laufzeit-Exception in einer Elternklasse auszulösen, anstatt einen Fehlerwert (z.B. -1) zurückzugeben, wenn eine Methode nicht überschrieben wird?
Warum ist es in der Regel besser, eine Laufzeit-Exception in einer Elternklasse auszulösen, anstatt einen Fehlerwert (z.B. -1) zurückzugeben, wenn eine Methode nicht überschrieben wird?
Welche Aussage beschreibt am besten, wie eine abgeleitete Klasse (Kindklasse) die Eigenschaften einer Basisklasse (Elternklasse) erbt?
Welche Aussage beschreibt am besten, wie eine abgeleitete Klasse (Kindklasse) die Eigenschaften einer Basisklasse (Elternklasse) erbt?
Was bedeutet das 'Ãœberschreiben' (Overriding) einer Methode in einer abgeleiteten Klasse?
Was bedeutet das 'Ãœberschreiben' (Overriding) einer Methode in einer abgeleiteten Klasse?
Warum dürfen öffentliche Methoden einer Basisklasse nicht im privaten Bereich einer abgeleiteten Klasse überschrieben werden?
Warum dürfen öffentliche Methoden einer Basisklasse nicht im privaten Bereich einer abgeleiteten Klasse überschrieben werden?
Was passiert, wenn eine abgeleitete Klasse eine Methode der Basisklasse nicht neu deklariert?
Was passiert, wenn eine abgeleitete Klasse eine Methode der Basisklasse nicht neu deklariert?
Welche der folgenden Aussagen beschreibt am besten den Zweck einer abstrakten Klasse im Kontext der Vererbung?
Welche der folgenden Aussagen beschreibt am besten den Zweck einer abstrakten Klasse im Kontext der Vererbung?
Wie kann man in Java signalisieren, dass eine Methode in einer abgeleiteten Klasse überschrieben werden soll und was sind die Konsequenzen, wenn dies nicht geschieht?
Wie kann man in Java signalisieren, dass eine Methode in einer abgeleiteten Klasse überschrieben werden soll und was sind die Konsequenzen, wenn dies nicht geschieht?
In welchem Abschnitt einer abgeleiteten Klasse werden zusätzliche Datenfelder hinzugefügt, die spezifisch für diese Klasse sind und nicht von der Basisklasse geerbt werden sollen?
In welchem Abschnitt einer abgeleiteten Klasse werden zusätzliche Datenfelder hinzugefügt, die spezifisch für diese Klasse sind und nicht von der Basisklasse geerbt werden sollen?
Welche der folgenden Aussagen beschreibt am besten die Beziehung zwischen 'Assignment' und 'Nests' im Kontext der Modellierung von Gebäudeplanungselementen in IFC?
Welche der folgenden Aussagen beschreibt am besten die Beziehung zwischen 'Assignment' und 'Nests' im Kontext der Modellierung von Gebäudeplanungselementen in IFC?
Wie beeinflusst die Verwendung von Polymorphismus die Flexibilität und Erweiterbarkeit von Softwareanwendungen im Bauwesen?
Wie beeinflusst die Verwendung von Polymorphismus die Flexibilität und Erweiterbarkeit von Softwareanwendungen im Bauwesen?
Was bedeutet 'Dynamic Dispatch' im Kontext von Polymorphismus und Objektorientierung?
Was bedeutet 'Dynamic Dispatch' im Kontext von Polymorphismus und Objektorientierung?
Welche der folgenden Architekturentscheidungen würde die Anwendung von Polymorphismus in einem Bauprojekt am besten unterstützen?
Welche der folgenden Architekturentscheidungen würde die Anwendung von Polymorphismus in einem Bauprojekt am besten unterstützen?
Wie unterscheidet sich 'Method Overloading' von anderen Formen des Polymorphismus in objektorientierten Programmiersprachen?
Wie unterscheidet sich 'Method Overloading' von anderen Formen des Polymorphismus in objektorientierten Programmiersprachen?
In welchem Szenario wäre die Anwendung von Polymorphismus besonders vorteilhaft bei der Entwicklung einer Software für das Facility Management?
In welchem Szenario wäre die Anwendung von Polymorphismus besonders vorteilhaft bei der Entwicklung einer Software für das Facility Management?
Welche Herausforderungen entstehen bei der Implementierung von Polymorphismus in großen, komplexen Softwareprojekten im Bauwesen?
Welche Herausforderungen entstehen bei der Implementierung von Polymorphismus in großen, komplexen Softwareprojekten im Bauwesen?
Wie können Softwareentwickler sicherstellen, dass die Vorteile von Polymorphismus in einem Bauprojekt maximiert werden, während gleichzeitig die potenziellen Nachteile minimiert werden?
Wie können Softwareentwickler sicherstellen, dass die Vorteile von Polymorphismus in einem Bauprojekt maximiert werden, während gleichzeitig die potenziellen Nachteile minimiert werden?
In Bezug auf Java, welche Aussage über Referenztypen und Polymorphie trifft nicht zu?
In Bezug auf Java, welche Aussage über Referenztypen und Polymorphie trifft nicht zu?
Welches Kriterium ist bei der Entscheidung, ob eine extends
-Klausel korrekt eingesetzt wird, am wichtigsten?
Welches Kriterium ist bei der Entscheidung, ob eine extends
-Klausel korrekt eingesetzt wird, am wichtigsten?
Was muss bei der Verwendung der super()
-Methode in einem Konstruktor beachtet werden?
Was muss bei der Verwendung der super()
-Methode in einem Konstruktor beachtet werden?
Welche der folgenden Alternativen zur Verwendung einer extends
-Klausel ist die ungünstigste, wenn eine Methode der Elternklasse in der Kindklasse nicht unterstützt werden soll?
Welche der folgenden Alternativen zur Verwendung einer extends
-Klausel ist die ungünstigste, wenn eine Methode der Elternklasse in der Kindklasse nicht unterstützt werden soll?
Was ist der Hauptzweck des Schlüsselworts final
bei der Definition von Methoden in einer Elternklasse?
Was ist der Hauptzweck des Schlüsselworts final
bei der Definition von Methoden in einer Elternklasse?
Warum ist die Deklaration von invarianten Methoden als final
eine gute Programmierpraxis?
Warum ist die Deklaration von invarianten Methoden als final
eine gute Programmierpraxis?
Betrachten Sie eine Elternklasse Fahrzeug
mit einer Methode beschleunigen()
. Eine Kindklasse Rennwagen
erbt von Fahrzeug
. Unter welcher Bedingung wäre es nicht angebracht, die Methode beschleunigen()
in Fahrzeug
als final
zu deklarieren?
Betrachten Sie eine Elternklasse Fahrzeug
mit einer Methode beschleunigen()
. Eine Kindklasse Rennwagen
erbt von Fahrzeug
. Unter welcher Bedingung wäre es nicht angebracht, die Methode beschleunigen()
in Fahrzeug
als final
zu deklarieren?
Ein Entwickler entscheidet sich, eine Methode in einer Elternklasse, die eigentlich in einer Kindklasse benötigt wird, durch Werfen einer UnsupportedOperationException
zu 'implementieren'. Welches Problem kann dadurch nicht entstehen?
Ein Entwickler entscheidet sich, eine Methode in einer Elternklasse, die eigentlich in einer Kindklasse benötigt wird, durch Werfen einer UnsupportedOperationException
zu 'implementieren'. Welches Problem kann dadurch nicht entstehen?
Flashcards
IFC Resource Layer
IFC Resource Layer
Bietet gemeinsame Ressourcen für andere Schichten.
Inhalt der Resource Layer
Inhalt der Resource Layer
Enthält Datenmodelle für Verantwortlichkeit, Historie und Identifikation von Objekten.
IFC Core Layer
IFC Core Layer
Beinhaltet abstrakte, generische Konzepte, die in höheren Schichten verwendet werden.
Kernel Schema
Kernel Schema
Signup and view all the flashcards
Product Extension
Product Extension
Signup and view all the flashcards
Process Extension
Process Extension
Signup and view all the flashcards
Interoperability Layer (IL)
Interoperability Layer (IL)
Signup and view all the flashcards
Funktion der IL-Objekte
Funktion der IL-Objekte
Signup and view all the flashcards
Was bedeutet Vererbung?
Was bedeutet Vererbung?
Signup and view all the flashcards
Was ist eine 'Superklasse'?
Was ist eine 'Superklasse'?
Signup and view all the flashcards
Was ist eine 'Subklasse'?
Was ist eine 'Subklasse'?
Signup and view all the flashcards
Wie wird Vererbung in UML dargestellt?
Wie wird Vererbung in UML dargestellt?
Signup and view all the flashcards
Was ist das Ziel der Vererbung?
Was ist das Ziel der Vererbung?
Signup and view all the flashcards
Was ist Vererbung?
Was ist Vererbung?
Signup and view all the flashcards
Private Sichtbarkeit
Private Sichtbarkeit
Signup and view all the flashcards
Geschützte Sichtbarkeit
Geschützte Sichtbarkeit
Signup and view all the flashcards
Öffentliche Sichtbarkeit
Öffentliche Sichtbarkeit
Signup and view all the flashcards
Paketsichtbarkeit
Paketsichtbarkeit
Signup and view all the flashcards
Abgeleitete Klasse (Child-Klasse)
Abgeleitete Klasse (Child-Klasse)
Signup and view all the flashcards
"extends" Klausel
"extends" Klausel
Signup and view all the flashcards
Zusätzliche Datenfelder
Zusätzliche Datenfelder
Signup and view all the flashcards
Zusätzliche Methoden
Zusätzliche Methoden
Signup and view all the flashcards
Nicht-spezifizierte Basisklassen-Methoden
Nicht-spezifizierte Basisklassen-Methoden
Signup and view all the flashcards
Öffentliche Basisklassen-Methoden
Öffentliche Basisklassen-Methoden
Signup and view all the flashcards
Fehlerhafte Flächenberechnung (Beispiel)
Fehlerhafte Flächenberechnung (Beispiel)
Signup and view all the flashcards
Bessere Fehlerbehandlung
Bessere Fehlerbehandlung
Signup and view all the flashcards
Polymorphismus
Polymorphismus
Signup and view all the flashcards
Methoden-Ãœberladung
Methoden-Ãœberladung
Signup and view all the flashcards
Polymorphismus (Java)
Polymorphismus (Java)
Signup and view all the flashcards
Automatische Auswahl
Automatische Auswahl
Signup and view all the flashcards
Dynamische Bindung
Dynamische Bindung
Signup and view all the flashcards
Späte Bindung
Späte Bindung
Signup and view all the flashcards
Dynamischer Versand
Dynamischer Versand
Signup and view all the flashcards
OO-Modellierungstechniken
OO-Modellierungstechniken
Signup and view all the flashcards
Polymorphismus in Java
Polymorphismus in Java
Signup and view all the flashcards
extends
-Klausel
extends
-Klausel
Signup and view all the flashcards
Anforderungen an Kindklassen
Anforderungen an Kindklassen
Signup and view all the flashcards
super()
Methode
super()
Methode
Signup and view all the flashcards
Position von super()
Position von super()
Signup and view all the flashcards
Override mit Exception
Override mit Exception
Signup and view all the flashcards
Refactoring (Alternative zu extends
)
Refactoring (Alternative zu extends
)
Signup and view all the flashcards
final
-Methoden
final
-Methoden
Signup and view all the flashcards
Study Notes
Einführung in IT im AEC-Sektor (Grundlagen der Bauinformatik)
- Modul BIG-LE-05 behandelt OO-Konzepte im AEC-Sektor.
- Der Kurs ist BIW 1-07: Grundlagen der Bauinformatik.
- Der Kontext ist BIG-LE-05.
Datenstrukturen
- Primitive Typen (LE-01), Strings/Arrays (LE-02), Einführung in OO-Konzepte (LE-03), Sortieralgorithmen (LE-04), OO-Programmierung (LE-05), UNICODE, I/O-Operationen (LE-06), OO-Konzepte für GUIs (LE-07), Graphen (LE-21), Greedy- (LE-22) und rekursive Algorithmen (LE-23), Bäume (LE-24) und Backtracking (LE-25) sind Bestandteile.
Überblick über IT im AEC-Sektor (BIG-LE-05)
- Die The Industry Foundation Classes (IFC) werden behandelt.
- OO-Techniken wie Klassen und Vererbung werden betrachtet.
- Vererbung wird anhand eines Beispiels erläutert.
- Vererbung in IFC wird betrachtet.
- OO-Techniken wie Polymorphismus werden betrachtet.
- OO-Techniken wie Instanzen von Klassen werden betrachtet.
Literaturhinweise
- Mark A. Weiss (2014): Datenstrukturen und Problemlösung mit Java.
- Sebastian Dörn (2016): Programmieren für Ingenieure und Naturwissenschaftler-Band 1: Grundlagen.
- Building Smart stellt Informationen zum Standard IFC bereit.
IFC: Die Industry Foundation Classes - Zusammenfassung
- Dieser Abschnitt führt in das bekannteste offene BIM Meta Data Model im AEC-Bereich ein, das als Industry Foundation Classes bezeichnet wird.
- Es führt in openBIM ein.
- Es bietet eine „Vogelperspektice“ auf die IFC-Modellierungsschichten.
Terminologie für Building Information Modelling (BIM)
- BIM umfasst Design, Analyse, Planung/Preisgestaltung, Zeichnen/Visualisierung, Herstellung und Betrieb.
Komponenten von IFC (MBA-LE-0104) - Zusammenfassung
- Wichtige Teile/Komponenten des IFC-Meta-Modells werden erläutert.
- Dies umfasst Resource Layer, Core Layer, Interoperability Layer und Domain-specific Application Layer.
Ãœbersicht der IFC 2.x2 Standard Komponenten
- Die IFC ist in vier Schichten organisiert: Resource Layer, Core Layer, Interoperability Layer und Domain-specific Application Layer.
- Die Resource Layer stellt allgemeine Ressourcen bereit.
- Die Core Layer bietet abstrakte, generische Konzepte.
- Die Interoperability Layer definiert Objekte, die von mehr als einer Anwendung gemeinsam genutzt werden.
- Die Domain-specific Application Layer unterstützt Anwendungen, die von Fachexperten genutzt werden.
IFC-Resource Layer
- Die Resource Layer enthält Datenmodelle für Ownership, History und Identification.
- Ownership entspricht den Akteuren, die für die Pflege eines Objekts verantwortlich sind und sich im Laufe der Zeit ändern kann.
- History erfasst Änderungen an der Owner/Application-Kombination.
- Identification bietet ProjectUniqueld und globallyUniqueld.
IFC-Core Layer
- Die Core Layer bietet abstrakte generische Konzepte, die in höheren Definitionen verwendet werden.
- Sie enthält Kernel Schema, Product Extension, Process Extension und Controls Extension.
- Das Kernel Schema definiert allgemeine Konstrukte und behandelt die grundlegende Funktionalität.
- Die Product Extension liefert die Mehrheit der Objektklassen, die die physische Beschreibung eines Gebäudes ausmachen.
- Die Process Extension definiert Klassen zur Darstellung von Prozessen zur Planung und Errichtung eines Gebäudes.
- Die Controls Extension - NICHTS
Interoperability Layer (IL)
- Die Interoperability Layer definiert Objekte, die von mehr als einer Anwendung gemeinsam genutzt werden; IL-Objekte spezialisieren die Core Layer Objekte.
- Beispiele sind Bauelemente, Gebäudeausrüstungselemente, Verteilungselemente, Möbel, Elektrogeräte oder Bauvorschriften.
Domain-Specific Application Layer
- Sie unterstützt Anwendungen, die von Fachexperten genutzt werden.
- Spezifikationen in dieser Schicht sollten klein und einfach bleiben.
OO-Modellierungskonzepte: Vererbung
- Vererbung ist das grundlegende objektorientierte Prinzip zur Wiederverwendung von Code zwischen verwandten Klassen.
- Sie modelliert eine IST-EIN-Beziehung und bildet Hierarchien.
- Java nutzt Vererbung intensiv in seinen Klassenbibliotheken.
- Neue Klassen können der Hierarchie hinzugefügt werden, ohne bestehende Implementierungen zu beeinträchtigen.
- Beim Hinzufügen neuer Child-Klassen sind keine Änderungen an Parent- oder bestehenden Child-Klassen erforderlich.
Vererbungshierarchien
- In einer IST-EIN-Beziehung ist die abgeleitete Klasse eine Variante der Basisklasse und stellt eine Beziehung auf Klassenebene dar.
- Eine Subklasse ähnelt einer Klasse, mit wenigen zusätzlichen Datenmembern und Methoden.
- Hierarchische Beziehungen zwischen Klassen und Subklassen sollen explizit sein, um das Kopieren und Einfügen von Methoden zu vermeiden.
- Maintenance und Versionierung sollen durch die Weitergabe von Änderungen von Klassen zu Subklassen effizient unterstützt werden.
- Es gibt maximal drei Arten von Veränderungen, die in Unterklassen erlaubt sind: neue Felder, neue Methoden und Überschreiben existierender Methoden.
- Das Entfernen von Feldern oder Methoden ist in Unterklassen nicht erlaubt.
Abstrakte Klassen
- Eine abstrakte Klasse dient als gemeinsame Superklasse für andere Klassen.
- Java erfordert die explizite Deklaration abstrakter Klassen, es ist nicht vorgesehen, Instanzen einer abstrakten Klasse zu erstellen.
- Eine Klasse mit mindestens einer abstrakten Methode ist abstrakt.
- Abstrakte Methoden sind nicht dazu vorgesehen, direkt aufgerufen zu werden; stattdessen werden Platzhaltermethoden eingeführt, die von Child-Klassen überschrieben werden.
- Kindklassen können spezifischere Methodendefinitionen enthalten, um Platzhaltermethoden zu überschreiben.
- Abstrakte Klassen können sowohl statische als auch Instanzfelder deklarieren, wobei Instanzfelder typischerweise private sind und durch Konstruktoren initialisiert werden.
Abstrakte Methoden
- Eine abstrakte Methode deklariert eine Funktionalität, die alle daraus abgeleiteten Klassen letztendlich implementieren müssen.
- Sie stellt jedoch keine Standardimplementierung bereit; jede Klasse muss ihre eigene Implementierung bereitstellen.
Abgeleitete Klasse
- Die „Extends“-Klausel deklariert, dass eine Klasse von einer anderen Klasse abgeleitet ist.
- Eine abgeleitete Klasse erbt alle Eigenschaften der Basisklasse und kann Datenmember hinzufügen, Methoden überschreiben und neue Methoden hinzufügen.
- Jede abgeleitete Klasse ist eine völlig neue Klasse.
- Zusätzliche Datenfelder werden dem privaten Abschnitt der abgeleiteten Klasse hinzugefügt.
- Methoden der Basisklasse, die nicht in der abgeleiteten Klasse angegeben sind, werden unverändert vererbt.
- Private Methoden der Basisklasse können nicht im privaten Abschnitt der abgeleiteten Klasse überschrieben werden, da dies die IST-EIN-Beziehung verletzen würde. Auch wenn es keine direkte Beziehung gibt.
- Methoden der Basisklasse, die (erneut) im öffentlichen Abschnitt der abgeleiteten Klasse deklariert werden, werden überschrieben.
Beispiel für eine abstrakte Klasse
- Der Programmierer hat versucht, zu signalisieren, dass der Aufruf von Shape's area ein Fehler ist, indem er -1 zurückgibt.
- Darüber hinaus wird dieser Wert zurückgegeben, wenn area bei der Erweiterung von Shape nicht überschrieben wird.
- Dieser Fehler beim Ãœberschreiben kann aufgrund eines Tippfehlers auftreten.
- Eine bessere Lösung, um einen Überschreibungsfehler hervorzuheben, ist es: eine Laufzeitausnahme in der Elternklasse auszulösen.
- Dies ist vorzuziehen, -1 zurückzugeben.
Vererbung in UML modellieren
- Vererbung zeigt an, dass eine Subklasse eine spezialisierte Form einer Superklasse ist bzw. die Superklasse eine verallgemeinerte Form der Subklasse darstellt.
- Die Superklasse wird auch als "Elternklasse", "Basisklasse" oder "Superklasse" bezeichnet.
- Die Subklasse wird auch als "Kindklasse", "abgeleitete Klasse" oder "erbende Klasse" bezeichnet.
- In UML wird die Generalisierung durch ein hohles Dreieck am Ende der Linie dargestellt, die die Superklasse mit einer oder mehreren Subklassen verbindet.
Vererbung im IFC
- Die Vererbung wird verwendet, um Bauelemente im IFC zu modellieren.
- ifcRoot ist die Wurzel der Vererbungshierarchie im IFC.
- ifcBuildingElement ist ein Supertyp von ifcBeam, ifcColumn, ifcDoor, ifcFooting usw.
- Building Elements werden durch Attribute wie Globalld, Owner History, Name und Description modelliert.
Polymorphismus
- Polymorphismus in Programmiersprachen und Typtheorie ermöglicht eine einzige Schnittstelle für Entitäten unterschiedlicher Typen oder die Verwendung eines einzelnen Symbols zur Darstellung mehrerer verschiedener Typen.
- Methodenüberladung ist eine Möglichkeit, wie OO-Programmiersprachen Polymorphismus implementieren.
- Dies ermöglicht Definitionen von zwei Methoden mit gleichem Namen innerhalb derselben Klasse, solange ihre Parameterdeklarationen unterschiedlich sind.
Polymorphismus in Java
- Polymorphismus ist ein wichtiges objektorientiertes Prinzip.
- Eine polymorphe Referenzvariable kann Objekte verschiedener Typen referenzieren.
- Operationen, die auf die Referenz angewendet werden, werden automatisch entsprechend dem referenzierten Objekt ausgewählt.
- Dynamic Dispatch, Late Binding und Dynamic Binding sind weitere Begriffe, die für Polymorphismus verwendet werden.
- In Java sind alle Referenztypen polymorph.
Extends-Anweisung
- Diese Anweisung ist geeignet, wenn die Kindklasse ein Subtyp der Superklasse ist.
- Jede Operation, die eine Parent-Klasse ausführen kann, muss auch die Child-Klasse unterstützen.
- Es muss in der Zukunft möglich sein, der Parent-Klasse Operation hinzuzufügen.
- Option #1: die nicht unterstützte Methode wird überschrieben mit einer Implementierung, die eine Ausnahme auslöst
- Option #2: die gesamte Hierarchie wird neu gestaltet
Finale Methoden
- Eine abgeleitete Klasse kann Basisklassenmethoden entweder überschreiben oder akzeptieren.
- Das Schlüsselwort „FINAL“ macht eine bestimmte Basisklassenmethode über die Hierarchie hinweg invariant, d. h. eine abgeleitete Klasse kann die Basisklasse nicht überschreiben.
Finale Klassen
- Dies ähnelt der finalen Methode, d. h. eine finale Klasse kann nicht erweitert werden.
- Somit sind alle Methoden einer finalen Klasse (automatisch) finale Methoden.
- Klassen mit ausschliesslich finalen Methoden sind nich zwingend auch finale Klassen
- Finale Klassen werden auch als Leaf Klassen bezeichnet.
Zusammenfassung der vier Arten von Klassenmethoden
- Abstrakte Methoden: Das Überschreiben wird zur Laufzeit aufgelöst; die Basisklasse bietet keine Implementierung und ist abstrakt.
- Finale Methoden: Diese werden verwendet, wenn die Methode über die Vererbungshierarchie hinweg invariant ist.
- Statische Methoden: Das Überschreiben wird zur Kompilierzeit aufgelöst (kein steuerndes Objekt).
- Andere Methoden: Das Überschreiben wird zur Laufzeit aufgelöst; die Basisklasse bietet eine Standardimplementierung, die entweder überschrieben oder von abgeleiteten Klassen unverändert übernommen werden kann.
Grundlegende Modellierungsprinzipien für BIM
- Eine Klasse: eine Abstraktion in objektorientierten Programmiersprachen;; sie fasst Struktur und Verhalten zusammen, definiert Attribute und Operationen für alle ihre Instanzen, und Attribute und Operationen können an die Objekte der Unterklasse vererbt werden.
- Eine abstrakte Klasse: Es dient lediglich dazu, gemeinsame Attribute und Operationen zu modellieren. Es wird niemals instantiiert; sie stellt verallgemeinerte Konzepte im Anwendungsbereich dar.
IT-Objekt
- Ein IT-Objekt ist eine Instanz einer Klasse.
- Es hat eine Identität, speichert Attributwerte and gehört zu genau einer Klasse.
- Attribut ist ein benannter Slot in der Instanz, wo ein Wert gespeichert ist
- Datentyp stellt verwendungszwecks für gültige Operationen sicher -> hat eindeutigen Namen -> dient von anderen Datentyp zu unterscheiden -> hat Zweck und Member
- Ein IT-Objekt hat einen Zustand, ein Verhalten und eine Identität.
- Zustand umfasst (statisch) Eigenschaften eines Objekts
- Verhalten ist wie sich das Objekt in Bezug auf Zuständsänderung und Nachrichtenübermittlung verhält.
- Identität welches dasObjekt von allen anderen unterscheidet. Zusammenfassend lässt sich sagen, dass Struktur und Verhalten ähnlicher Objekte in ihrer GEMEINSAMEN KLASSE definiert sind.
- INSTANZ und OBJEKT sind austauschbare Begriffe.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.