Kapitel 1 - Grundlagen Flashcards
Nenne die minimalen Eigenschaften von OOSE
Objekte, Vererbung, dynamische Bindung
Nenne wünschenswerte Eigenschaften von OOSE
Klassen, Garbage Collection, Persistenz
Erläutere strukturelle Übereinstimmung im Kontext der Typenkompatibiliät
Die Struktur der Subklasse ist eine Teilmenge der Superklasse
Erläutere funktionale Übereinstimmung im Kontext der Typenkompatibiliät
Die Funktionalität der Subklasse ist eine Teilmenge der Superklasse
Erläutere “dynamische Bindung”
überprüft zur Laufzeit, ob das Objekt eine Instanz der Sub- oder Superklasse ist und ruft die entsprechende Methode auf - Konsequenz: Kontrollfluss und die Typinformation verlagert sich an das Objekt
Erläutere “Faktorisierung”
zusammengehörige Eigenschaften und
Aspekte zu einer Einheit zusammenfassen, erhöht die Wartbarkeit
Erläutere “Principle of Substitutability”
ein Programm, das Objekte einer Basisklasse T verwendet, muss auch mit Objekten der davon abgeleiteten Klasse S korrekt funktionieren
Define “Object”
Instance of an abstract data type with structural and functional properties, must be uniquely identifiable, communicates via messages
Define “Class”
abstracted description of a type with structural properties (individual state: instance variables, shared state: class variables) and functional properties (instance & class methods)
Explain “Inheritance”
reuse, flexible adaption to new context, allows abstraction, factorization and substitutability
What is the difference between static vs. dynamic type?
static typed: defined by declaration (variables dont need to be defined before usage), type checking at compile time (e.g. java). dynamic typed: defined by type of referenced object, type checking at runtime (e.g. PHP)
What is strong and weak type?
strong typing: variables have specific data types (are bound to a particular data type) (e.g. Java). Weak type: variables are not of a specific data type (eg. PHP)