Final: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Das Schlüsselwort '''final''' deklariert, dass ein Programmelement nach seiner deklaration oder initialisierung nicht mehr geändert werden kann. * Von einer…“)
 
Zeile 16: Zeile 16:
 
* Wenn man in größeren Methoden garantieren und kennzeichnen möchte, dass mit einer Variablen nur gerechnet wird, ihr Wert selbst sich aber nach initialisierung immer der gleiche ist.
 
* Wenn man in größeren Methoden garantieren und kennzeichnen möchte, dass mit einer Variablen nur gerechnet wird, ihr Wert selbst sich aber nach initialisierung immer der gleiche ist.
  
Gerade letzteres wird als ein relativ guter Stil empfunden, da man somit die finalen Variablen gedanklich ausblenden kann, wenn ihr Wert einmal fest steht, wenn man nach Programmfehlern sucht und der Fehler an dieser Stelle ausgeschlossen wurde.
+
Gerade letzteres wird als ein relativ guter Stil empfunden, da man somit die finalen Variablen gedanklich ausblenden kann, wenn ihr Wert einmal fest steht, während man nach Programmfehlern sucht und der Fehler an dieser Stelle ausgeschlossen wurde.

Version vom 29. April 2016, 20:44 Uhr

Das Schlüsselwort final deklariert, dass ein Programmelement nach seiner deklaration oder initialisierung nicht mehr geändert werden kann.

  • Ein finales Attribut muss entweder während der Deklaration initialisiert werden, oder in jedem Konstruktor initialisiert werden und kann danach nicht mehr gändert werden.
  • Eine finale Methode kann nicht überschrieben werden.
  • Eine lokale finale Variable kann nach initialisierung nicht verändert werden.

Die Verwendung des Modifikators final kann also in folgenden Fällen verwendet werden:

  • Wenn man eine Konstante deklarieren möchte. Dies geschieht meistens auch in Kombination mit dem Schlüsselwort static.
  • Wenn man nach Initialisierung verhindern möchte, dass bewusst oder ausversehen ein im Konstruktor gesetzter Wert des Objektes verändert wird.
  • Wenn man garantieren möchte, dass die Funktionalität einer Methode einer Oberklasse in allen Unterklassen die gleiche ist.
  • Wenn man in größeren Methoden garantieren und kennzeichnen möchte, dass mit einer Variablen nur gerechnet wird, ihr Wert selbst sich aber nach initialisierung immer der gleiche ist.

Gerade letzteres wird als ein relativ guter Stil empfunden, da man somit die finalen Variablen gedanklich ausblenden kann, wenn ihr Wert einmal fest steht, während man nach Programmfehlern sucht und der Fehler an dieser Stelle ausgeschlossen wurde.