TU Wien:Objektorientierte Programmiertechniken VU (Puntigam)/Gesammelte Prüfungsfragen 2021W

Aus VoWi
Zur Navigation springen Zur Suche springen

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
  • 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
  • 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
  • Beschreibe die Template-Method
  • Wie hängen rekursive Typparameter mit binären Methoden zusammen
  • Was sind Client-seitige history Constraints?
  • 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.)?
  • 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
  • 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)
  • 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)?
  • 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)
  • Ko-,Kontra-,Invarianz
  • Vorbedingungen (+Verhalten in Untertypen)
  • Schranken bei Typparametern, rekursive Typparameter, binäre Methoden
  • Iterator
  • Invariante (Zusicherung)
  • Nebenläufige Programmierung - Synchronisation (wait, notify, notifyAll)
  • Prototype (Entwurfsmuster)
  • 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?)

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

Sehr ähnlich zu Prüfung 1, Frage zu Iteratoren anstatt factory method

Ersetzbarkeitsprinzip, Kovarianz und Kontravarianz erklären

Übersetzungen der Generizität (homogen und heterogen); Einschränkungen in Java

Proxy Pattern erklären

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)

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

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