Anwendungsentwickler-Podcast #13: Häufige Fragen im Fachgespräch – Programmierung (Teil 2)

Dieser Beitrag ist Teil 6 von 13 in der Serie Häufige Fragen im Fachgespräch.

In der dreizehnten Episode meines Anwendungsentwickler-Podcasts beende ich meine Liste der häufigen Fragen rund um die Programmierung im Fachgespräch.

Objektorientierung

  • Was bedeutet das Schlüsselwort this?
    • Zeiger auf das aktuelle Objekt.
  • Was bedeutet static?
    • Statische Attribute oder Methoden können ohne eine Instanz ihrer Klasse verwendet werden.
  • Was sind Vor-/Nachteile static?
    • Statische Methoden sind gut testbar, da sie keinen Objektzustand verwenden. Sie können aber z.B. nicht überschrieben werden.
  • Was ist ein Konstruktor?
    • Ein Konstruktor ist eine besondere Methode, die eine Objektinstanz erzeugt.
  • Welche Parameter sollte ein Konstruktor haben?
    • Ein Konstruktor sollte alle Parameter bekommen, die nötig sind, um ein Objekt in einem gültigen Zustand zu erzeugen.
  • Was sind Enumerations?
    • Enumerations sind Datentypen mit einer endlichen Menge an erlaubten Werten.
  • Welche Vorteile bieten Listen gegenüber Arrays?
    • Sie sind redimensionierbar. Sie sind evtl. schneller.

Fehlerbehandlung

  • Was sind Exceptions?
    • Eine Exception beschreibt eine Fehlersituation in einem Programm. Sie kann in anderen Teilen des Programms behandelt werden.
  • Welche zwei Typen von Exceptions gibt es in Java?
    • Checked (müssen gefangen werden) und unchecked Exceptions.
  • Was bedeuten die Schlüsselwörter try, catch, throw und throws?
    • try/catch: umschließen potentiell fehlerhaften Code, throw wirft eine Exception, throws kennzeichnet eine Methode als potentiell fehlerhaft.

Tiefergehendes

  • Was ist Refactoring?
    • Die semantikinvariante Modifikation von Quelltext.
  • Was ist Typinferenz?
    • Durch Typinferenz kann der Compiler den Datentyp einer Variablen ableiten, ohne dass er explizit angegeben werden muss.
  • Was sind generische Klassen?
    • Generische Klassen (Generic) stellen allgemeingültige Algorithmen für unterschiedliche Datentypen bereit.
  • Was sind Ko- und Kontravarianz?
    • Bei einer Vererbungsbeziehung kann eine Methode in der Subklasse überschrieben werden und dabei ihre Parametertypen anhand deren Vererbungsbeziehungen verändern. Wenn diese Veränderung in die gleiche Richtung geht wie die Vererbungsbeziehung der Methode, spricht man von Kovarianz. Wenn sie gegenläufig ist, spricht man von Kontravarianz.
    • Beliebtes Beispiel in Java: Listen sind nicht kovariant, d.h. List<String> erbt nicht von List<Object>.

Literaturempfehlungen

Links

Navigation der Serie<< Anwendungsentwickler-Podcast #12: Häufige Fragen im Fachgespräch – Programmierung (Teil 1)Relationale Datenbanken – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #17 >>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax