home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

2017-11-14: Reflection, Introspection

Content

  • Assertion
  • Reflection, Introspection

Materials

Fragen

  • Wie kann man über Reflection erst zur Laufzeit entscheiden, welche konkrete Klasse/Implementierung genutzt wird?
  • Wie heißt die Methode, um alle auf einer Klassen deklarierten Methoden auszulesen und zwar unabhängig davon, ob diese private oder public sind?
  • Wie ruft man eine Methode aus, von der man erst zur Laufzeit erfährt, wie sie heißt? Wie stellt man sicher, dass die richtige ausgewählt ist? Es können ja mehrere Methoden den gleichen Namen haben...
  • Inwiefern nutzt Eclipse Introspection? Was ist Introspection?
  • Wie kann man Reflection einsetzen, wenn man mit Interfaces arbeitet, zur Entwicklungszeit aber noch nicht festlegen kann, welche Implementierungen es geben wird?

Questions (English)

  • How can Reflection been used to decide on runtime(!) which specific class a program should work with?
  • Which method returns all methods of a given class, that are declared on the class - regardless whether these methods are private or public?
  • How to invoke a method if you do not know the method's name during development? How do you  make sure that you pick the right method if there are many methods with the same name?
  • How does Eclipse use Introspection?

2017-11-06: Inheritance, Error handling

Content

  • Inheritance, casting
  • Error handling in Java
  • Assertions (next lecture)

Materials

Fragen (deutsch)

  • Wie werden Methoden bei Ihrem Aufruf behandelt, die Fehler werfen?
  • Wann ist ein Konstrukt try{..} finally{...} möglich, also ohne catch-Block?
  • Was müssen Sie im Bezug auf die Reihenfolge der Fehlerbehandlung beachten, wenn Sie ein try-Block mit mehreren catch-Blöcken haben?
  • Welche Merkregeln zur Fehlerbehandlung kennen Sie?
  • Welche Klassen kennen Sie, die von Throwable erben?
  • Was ist der Unterschied zwischen Exceptions und Errors?
  • Weshalb muss man eine ClassCastException nicht fangen? Was ist eine ClassCastException?
  • Wie schreibt man eine Assertion?
  • Wozu setzt man Assertions ein? Worin unterscheidet sich deren Verwendung von Exceptions?

Questions (english)

  • Inheritance: see other lecture
  • What are the option to handle errors?
  • Is it possible to have a try-finally-block (without catch)?
  • What do you have to consider if working wiht more than one catch-block?
  • What are the most important rules for error handling?
  • What are the differences between errors and exceptions?
  • Why does the compiler does not insist on handling NullPointerException?
  • What is an assertion? When do you use assertions? What are the differences to exception?

2017-10-30: B-trees 2, Enumerations

Inhalt

  • Enums
  • Interfaces

Unterlagen

Fragen (Deutsch)

  • Für was setzt man enums ein, was sind die Vorteile? Nennen Sie ein Beispiel für eine interne und externe enum.
  • Was versteht man unter Java Interfaces? Wann setzt man Interfaces ein?
  • Wie viele Interfaces keine eine Java-Klasse implementieren? Von wie vielen Klassen kann sie erben?
  • Was ist eine Softwarekomponente?
  • Welche Vorteile bietet ein komponentenorientierter Entwurf?
  • Wie helfen Interfaces beim komponentenorientierten Entwurf?
  • Wieso spricht man in diesem Zusammenhang oft von Design-By-Contract?
  • Was versteht man unter Vererbung? Was wird vererbt?
  • Wie heißt das Schlüsselwort in Java?
  • Was versteht man unter Casting?
  • Wie verhindert man, dass eine Methode einer Superkasse überschrieben wird?
  • Wann setzen Sie abstrakte Klassen, wann Interfaces ein?
  • Wie unterscheiden sich abstrakte Klassen von Interfaces?
  • Welche Gemeinsamkeiten haben sie?
  • Kann man auf Interfaces Attribute definieren?
  • Werden Konstruktoren mitvererbt?
  • Was kann beim "Downcasting" passieren?

Questions (English)

  • What are use cases for enumerations? What are the advantages of enumerations?
  • What are interfaces? When are they used?
  • How many interfaces can a class implement? From how many classes can a class inherit?
  • What is a software component? What is the advantage of a component oriented architecture? How do interfaces support component oriented design?
  • What is inheritance? What is inherited? What not?
  • What is casting?
  • How can you prevent that a method of a super class is overwritten in an inheriting class?
  • What do abstract classes and interfaces have in common?
  • What is the difference between abstract classes and interfaces? When do you use which?
  • Is it possible to define attributes on interfaces?
  • Is "downcasting" possible? What might happen?

2017-10-23: Trees, AVL trees, B trees

Topic

  • AVL-trees
  • B-trees (üa 1)

Materials

  • Initiates file downloadScript
  • corresponding assignments: #7, #8

Fragen

  • Was sind Bäume? Nennen Sie Beispiele? Wie unterscheiden sie sich von linearen Listen? Welche Gemeinsamkeiten haben Sie mit diesen?
  • Definieren Sie die folgenden Begriffe

    • Grad
    • Höhe
    • Niveau
    • Blatt
    • Tiefe
    • Binärbaum
    • Vielwegbaum
    • Binärer Suchbaum

  • Was ist die stärkere Forderung, die nach Höhenbilanziertheit oder die nach Vollständigkeit?
  • Zeichnen Sie einen binären Suchbaumbaum, in den die Zahlen 6, 2, 9, 11, 5, 4, 3, 8, 10 eingefügt werden. Wie sieht der Baum aus, wenn es sich um einen höhenbilanzierten Baum handelt?
  • Wann muss ein hähenbilanzierter binärer Suchbaum reorganisiert werden?

    • Wann und wie findet diese Reorganisation durch Linksrotation statt?
    • Wann und wie findet diese Reorganisation durch Rechts-Linksrotation statt?

  • Wie löscht man aus einem Binärbaum Knoten? Unterscheiden Sie folgende Fälle

    • Knoten ist Blatt
    • Knoten hat ein Kindelement
    • Knoten hat zwei Kindelemente

  • Gegeben sei der unten gezeigte Baum.

    • Schreiben Sie an jeden Knoten

      • Niveau
      • Grad
      • die Differenz der Grade der Teilb?ume

    • In welcher Reihenfolge werden die Knoten durchlaufen bei

      • Pre-Order
      • Post-Order
      • In-Order

    • Ist der Baum höhenbilanziert?
    • Ist der Baum vollständig?

  • Wie lauten die Regeln für das Einfügen von Elementen in AVL-Büume?
  • Kann es passieren, dass nach dem Einfügen und Anwenden der Regeln, der AVL-Baum nicht höhenbilanziert ist?

Questions

  • What are trees? What's the difference to linear lists?
  • Define the terms

    • Degree
    • Height
    • Niveau
    • Leaf
    • Depth
    • Binary tree
    • Binary search tree

  • What is the stronger requirements, height balance or completeness?
  • How does the binary search tree  look like when inserting 6, 2, 9, 11, 5, 4, 3, 8, 10?
  • How does the AVL tree look like when inserting the same numbers?
  • When does reorganization has to happen?
  • When is left rotation used for this reorganization? When left-right rotation?
  • How to delete a node from a binary search tree?
  • Given is the following tree

    • Write on any node

      • Niveau
      • Degree
      • Balance

    • Is the tree height balanced?
    • Is the tree complete?

  • Can it happen that a AVL tree is not height balanced after a single or double rotation?

2017-10-17: Hashfunktion, Bäume

Inhalt

  • Hashfunktion
  • Bäume (s. nächste Stunde)

Unterlagen

Fragen

  • Was ist eine Hashfunktion?
  • Welche Forderungen stellt man an sie?
  • Wo werden Hashfunktionen eingesetzt?
  • Welche bekannten Algorithmen gibt es?
  • Weshalb sollen die hashCode und die equals Methode immer gemeinsam implementiert werden?

2017-10-09: equals(), == und hashCode()

Hinweis: Auf Seite 2 sollte es heißen: "== vergleicht, ob zwei Objekte identisch sind, d.h. die gleiche Speicherstellen haben.

Inhalt

  • Werteübergabe
  • Objektidentität, equals() und ==
  • Implementieren eigener equals()-Methode

Unterlagen

Fragen

  • Datentypen

    • Wie unterscheidet sich die Übergabe von primitiven und nicht primitiven Datentypen? Welche Folgen kann dies haben?

  • == und equals()

    • Wie prüft man die Identitat von Objekten. Wann kommt die equals()-Methode, wann == zum Einsatz?
    • Wie implementiert man eine equals()-Methode? Was gibt diese Methode zurück, wenn mit einem null-Objekt verglichen wird?
    • Welchen Datentyp muss die equals()-Methode als Übergabeparameter haben (um die Default equals()-Methode zu überschreiben)?

  • HashCode

    • Was ist eine Hashfunktion?
    • Welche Forderungen stellt man an sie?
    • Wo werden Hashfunktionen eingesetzt?
    • Welche bekannten Algorithmen gibt es?
    • Weshalb sollen die hashCode und die equals Methode immer gemeinsam implementiert werden?

2017-10-06: Innere Klassen

Inhalt

  • Einführung
  • Innere Klassen

Unterlagen

Fragen 

  • Was sind innere Klasse?
  • Wie unterscheiden sich innere, lokale und anonyme Klassen? Wo im Code können diese definiert werden? Bei welchen sind Modifier erlaubt?
  • Was ist bei anonymen Klassen anonym? Wie definiert man sie? Nennen Sie Beispiele für den Einsatz anonymer Klassen.