Final: Unterschied zwischen den Versionen
Aus EINI
Hauer (Diskussion | Beiträge) |
|||
Zeile 1: | Zeile 1: | ||
− | Das Schlüsselwort '''final''' deklariert, dass ein Programmelement nach seiner | + | =Funktionalität= |
+ | |||
+ | Das [[Schlüsselwort]] '''final''' deklariert, dass ein Programmelement nach seiner Deklaration oder Initialisierung '''nicht mehr geändert''' werden kann. | ||
* Von einer finalen [[Klasse]] kann nicht [[Vererbung | geerbt]] werden. | * Von einer finalen [[Klasse]] kann nicht [[Vererbung | geerbt]] werden. | ||
− | * Ein finales [[Attribut]] muss entweder während der Deklaration | + | * Ein finales [[Attribut]] muss entweder während der Deklaration oder in '''jedem''' [[Konstruktor]] initialisiert werden und kann danach nicht mehr geändert werden. |
* Eine finale [[Methode]] kann nicht überschrieben werden. | * Eine finale [[Methode]] kann nicht überschrieben werden. | ||
− | * Eine lokale finale [[Variable]] kann nach | + | * Eine lokale finale [[Variable]] kann nach Initialisierung nicht verändert werden. |
+ | |||
+ | =Verwendung= | ||
− | Die Verwendung des Modifikators '''final''' kann also in folgenden Fällen | + | Die Verwendung des [[Modifikator|Modifikators]] '''final''' kann also in folgenden Fällen geschehen: Wenn man... |
− | * | + | * ... eine '''Konstante''' deklarieren möchte. Dies geschieht meistens auch in Kombination mit dem Schlüsselwort [[static]]. |
− | * | + | * ... nach Initialisierung verhindern möchte, dass bewusst oder aus Versehen ein im Konstruktor gesetzter Wert des Objektes verändert wird. |
− | * | + | * ... garantieren möchte, dass die Funktionalität einer Methode einer Oberklasse in allen Unterklassen die gleiche ist. |
− | * | + | * ... in größeren Methoden garantieren und kennzeichnen möchte, dass mit einer Variablen nur gerechnet wird, ihr Wert selbst aber nach Initialisierung immer der gleiche ist. |
− | Gerade letzteres wird als | + | Gerade letzteres wird als relativ guter Stil empfunden, da man somit die finalen Variablen, wenn ihr Wert erst einmal feststeht, gedanklich ausblenden kann, während man nach Programmfehlern sucht und der Fehler an dieser Stelle ausgeschlossen wurde. |
Version vom 2. Mai 2016, 14:13 Uhr
Funktionalität
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 oder in jedem Konstruktor initialisiert werden und kann danach nicht mehr geändert werden.
- Eine finale Methode kann nicht überschrieben werden.
- Eine lokale finale Variable kann nach Initialisierung nicht verändert werden.
Verwendung
Die Verwendung des Modifikators final kann also in folgenden Fällen geschehen: Wenn man...
- ... eine Konstante deklarieren möchte. Dies geschieht meistens auch in Kombination mit dem Schlüsselwort static.
- ... nach Initialisierung verhindern möchte, dass bewusst oder aus Versehen ein im Konstruktor gesetzter Wert des Objektes verändert wird.
- ... garantieren möchte, dass die Funktionalität einer Methode einer Oberklasse in allen Unterklassen die gleiche ist.
- ... in größeren Methoden garantieren und kennzeichnen möchte, dass mit einer Variablen nur gerechnet wird, ihr Wert selbst aber nach Initialisierung immer der gleiche ist.
Gerade letzteres wird als relativ guter Stil empfunden, da man somit die finalen Variablen, wenn ihr Wert erst einmal feststeht, gedanklich ausblenden kann, während man nach Programmfehlern sucht und der Fehler an dieser Stelle ausgeschlossen wurde.