TU Wien:Objektorientierte Programmiertechniken VU (Puntigam)/Gesammelte Prüfungsfragen 2021W
Puntigam[Bearbeiten | Quelltext bearbeiten]
Prüfung 1[Bearbeiten | Quelltext bearbeiten]
Beim Abgabegespräch hat Prof. Puntigam angekündigt, dass er jeweils eine Frage zu Subtyping, Design Patterns und einem beliebigen Thema aus dem Skript fragen wird.
- Subtyping: Kovarianz, kovariante Probleme, History-Constraints
- Design Patterns: Template Pattern und Unterschiede/Ähnlichkeiten mit dem Factory Pattern
- Synchronisation: wie geht's in Java, was machen wait, notify, notifyAll, Threads
Prüfung 2[Bearbeiten | Quelltext bearbeiten]
- was ist Ersetzbarkeit
- invarianten - was sind sie, wer ist dafür zuständig, können clients auch zuständig sein, ...
- java 8 streams
- decorator pattern - allgmein erklären, bsp aus skript, Struktur, basierend auf dem Beispiel ein paar Fragen beantworten
Prüfung 3[Bearbeiten | Quelltext bearbeiten]
- Was macht binäre Methoden aus?
- Wie können Schranken auf Typparameter gesetzt werden? Beispiel für rekursive Typparameter
- Template Method: Struktur, Methoden, Vergleich zu Factory Method
Prüfung 4[Bearbeiten | Quelltext bearbeiten]
- Beschreibe die Template-Method
- Wie hängen rekursive Typparameter mit binären Methoden zusammen
- Was sind Client-seitige history Constraints?
Prüfung 5[Bearbeiten | Quelltext bearbeiten]
- Was ist alles ko-, kontra- und invariant? (z.B. Konstanten)
- Was sind Client-kontrollierte History-Constraints? Können auch Server diese kontrollieren?
- Was sind Multimethoden? Multimethoden vs. Überladen. Kurz das Visitor-Pattern anhand eines Bespiels erklären.
- Prototype Pattern: Wie funktioniert es (grob)? Wie wird es in Java umgesetzt (clone(), Cloneable, etc.)?
Prüfung 6[Bearbeiten | Quelltext bearbeiten]
- Was sind binäre Methoden? Was sind Invarianten? Wie verhalten sie sich in Untertypen?
- Was sind Java-8-Streams? Wie funktionieren sie? Schließt for-each ab? Was ist ein Beispiel einer Methode, die etwas macht, aber nicht abschließt (map)?
- Factory Method: Was bedeutet das? Wie wird sie verwendet? Wie können die vielen Klassen vermieden werden? Was sind prototypes? Prototypes vs Factory Method
Prüfung 7[Bearbeiten | Quelltext bearbeiten]
- Was sind Client-Seitige History-constraints
- Was sind Multimethoden (allgemein, im Vergleich zu Überladenen Methoden, Beispiel Visitorpattern der VO)
- Was ist ein Proxy (Alle verschiedenen Arten und was sie mach, Struktur kurz beschreiben)
Prüfung 8[Bearbeiten | Quelltext bearbeiten]
- Was sind Nachbedingungen? Wie verhalten sie sich in Untertypen?
- Was sind Wildcards? Welche Einschränkungen haben sie (Warum verwendet man nicht immer Wildcards)?
- Was ist ein Proxy? Wie ist er aufgebaut? Welche Arten gibt es? Welche Ähnlichkeiten gibt es zu Decorator (Können sie dieselbe Struktur wie Decorator haben)?
Prüfung 9[Bearbeiten | Quelltext bearbeiten]
- Was sind binäre Methoden? Ansätze zur Lösung dieser Probleme?
- Was ist eine Vorbedingung? Wie müssen sie sich in Untertypen verhalten?
- Was ist Objektkopplung? Wie wirkt sich eine schwache Objektkopplung auf die Refaktorisierung aus? (schwache Abhängigkeiten führen zu leicht refaktorisierbaren Programmen)
- Was ist ein Prototype? Unterschiede tiefe/flache Kopien und wie erzeugt man sie? Wozu benötigt man das Interface Cloneable? (muss implementiert werden, sonst kommt es bei einem Aufruf von clone() zu einer Ausnahmebehandlung)
Prüfung 10[Bearbeiten | Quelltext bearbeiten]
- Ko-,Kontra-,Invarianz
- Vorbedingungen (+Verhalten in Untertypen)
- Schranken bei Typparametern, rekursive Typparameter, binäre Methoden
- Iterator
Prüfung 11[Bearbeiten | Quelltext bearbeiten]
- Invariante (Zusicherung)
- Nebenläufige Programmierung - Synchronisation (wait, notify, notifyAll)
- Prototype (Entwurfsmuster)
Prüfung 12[Bearbeiten | Quelltext bearbeiten]
- Kovarianz (Was ist das, wo ist es anwendbar)
- Hollywood-Prinzip (was ist es?)
- Wildcards (Welche gibt es? Nach/Vorteile? Warum gibt es die?)
- Factory-Method (Was ist das? Wie heißt die Klasse / die Methode?)
Krall[Bearbeiten | Quelltext bearbeiten]
Prüfung 1[Bearbeiten | Quelltext bearbeiten]
zusicherungen wofür braucht man sie, welche gibts
vorbedingungen, nachbedinungen, invarianten, history constraints
nebenläufigkeit, wos is des welche probleme, deadlocks beispiel. ordnungsrelation. dead lock ist ein zyklischer lock
factory method, wos ist des, vor und nachteile
Prüfung 2[Bearbeiten | Quelltext bearbeiten]
Sehr ähnlich zu Prüfung 1, Frage zu Iteratoren anstatt factory method
Prüfung 3[Bearbeiten | Quelltext bearbeiten]
Ersetzbarkeitsprinzip, Kovarianz und Kontravarianz erklären
Übersetzungen der Generizität (homogen und heterogen); Einschränkungen in Java
Proxy Pattern erklären
Prüfung 4[Bearbeiten | Quelltext bearbeiten]
Zusicherungen + Zusicherungen in den Untertypen
Binäre Methoden und deren Probleme, allgemeines Beispiel von Point2d, Point3d aus dem Skript (das Beispiel musste man kennen)
Factory Method einfach allgemein, ich hab es erklärt und Vor- und Nachteile
Zusatzfrage weil ich zwischen zwei Noten war: Zwei Variablen mit gleichem Namen in Ober- und Unterklasse, Frage: Gibt es sie zweimal, wird sie überschrieben, überladen, ect. (es gibt sie zweimal)
Prüfung 5[Bearbeiten | Quelltext bearbeiten]
Zusicherungen + Zusicherungen in den Untertypen
Überladen vs Multimethoden
Factory Pattern + Vor-/Nachteile + wieviele Klassen werden bei einer Factory von n Objekten benötigt (-> 2*n)
Zusatzfrage: wie bei Prüfung 4
Prüfung 6[Bearbeiten | Quelltext bearbeiten]
Generizität, welche Arten gibt es, was zeichnet sie aus
Proxy erklären
Multimethode, was ist das, gibt es das in Java, wie kann man es simulieren
Iterator erklären, welche Arten gibt es (extern, intern, robust), unterschiede Java Stream und Java Iterator