Objektorientierung Teil 3 (Lernzielkontrolle zu Getter/Setter, Klassendesign, Enumerations) – Anwendungsentwickler-Podcast #45

Getter und Setter, ein vernünftiges Klassendesign und Enumerations sind die Themen der fünfundvierzigsten Episode des Anwendungsentwickler-Podcasts.

Probeabo bei Audible (Affiliate)

Inhalt

Getter und Setter

  • Wie steuert man den Zugriff auf Instanzvariablen?
    • Über dafür vorgesehene Methoden: Getter und Setter.
  • Was sind Getter und Setter?
    • Methoden zum Setzen und Lesen von Instanzvariablen.
  • Welchen Vorteil haben Setter im Vergleich zu public Attributen?
    • Man kann z.B. das Setzen ungültiger Werte verhindern.
  • Welchen Vorteil haben Getter im Vergleich zu public Attributen?
    • Man kann z.B. zusätzliche Berechnungen ausführen.

Klassendesign

  • Was sind die grundlegenden Regeln beim Schreiben von Klassen?
    • Eine Klasse sollte nur eine einzige Aufgabe haben (Single Responsibility Principle).
    • Sie sollte einen sprechenden Namen haben.
    • Sie sollte keine Attribute public machen (Geheimnisprinzip).
    • Sie sollte eine hohe Kohärenz aufweisen.
    • Sie sollte eine geringe Kopplung aufweisen.

Enumerations

  • Was ist eine Enumeration?
    • Ein Datentyp, der eine abgeschlossene Liste an Werten definiert.
  • Wann und warum sollte man Enumerations verwenden (und nicht Strings oder Integers)?
    • Wenn die Anzahl der erlaubten Werte begrenzt ist bekommt man durch eine Enumeration eine Art „Typsicherheit“.

Literaturempfehlungen

Links

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