Java Final Keyword-Beispiel
Das letzte Schlüsselwort in Java ist ein Modifikator, mit dem der Benutzer daran gehindert wird, unerwünschten Code auszuführen oder zu verhindern, dass der Code oder Wert geändert wird. Es ist möglich, dieses Schlüsselwort in 3 Kontexten zu verwenden. Sie sind:
-
Endgültiges Schlüsselwort als variabler Modifikator
-
Endgültiges Schlüsselwort als Methodenmodifikator
-
Letztes Schlüsselwort als Klassenmodifikator
Jeder Kontext hat seine eigene Bedeutung und implizite Einschränkungen. Sie werden nachstehend ausführlich erörtert.
1. Schlüsselwort FINAL als Variablenmodifikator
Jeder Kontext hat seinen eigenen Zweck. final
dient bei Verwendung mit einer Variablen speziell dazu, den Benutzer daran zu hindern, den Wert an einer anderen Stelle im Code zu ändern. Die Variable einerfinal
-Variable kann nach ihrer Initialisierung nicht mehr geändert werden.
Wenn die Variablefinal
nur deklariert, aber nicht initialisiert wird, kann der Variablenfinal
im gesamten Code einmal ein Wert zugewiesen werden. Jede Änderung des Werts der Variablenfinal
mehr als einmal führt zu einem Kompilierungsfehler.
Der folgende Code gibt beispielsweise einen Kompilierungszeitfehler aus, wenn versucht wird, zu kompilieren.
FinalVariableExample.java
package com.techfou; public class FinalVariableExample { final int count = 0; public FinalVariableExample() { count++; //The final field FinalVariableExample.count cannot be assigned } }
Ausgabe
Output: Compile Time error
2. Schlüsselwort FINAL als Methodenmodifikator
final
verhindert bei Verwendung mit method, dass die erbende Klasse die Methodendefinition überschreibt. Das folgende Beispiel gibt beispielsweise einen Fehler bei der Kompilierung an, da die KlasseFinalMethodChild
versucht, die Methodefinal
testCode()
zu überschreiben
FinalMethodParent.java
package com.techfou; public class FinalMethodParent { final void testCode(){ System.out.println("This is a final method"); } } class FinalMethodChild extends FinalMethodParent{ //Cannot override the final method from FinalMethodParent void testCode(){ System.out.println("This is overriding method"); } }
Ausgabe
Output: Compile Time error
3. Schlüsselwort FINAL als Klassenmodifikator
final
verhindert bei Verwendung für eine Klasse als Modifikator, dass die Klasse von einer anderen Klasse erweitert oder geerbt wird. Wenn Sie beispielsweise versuchen, den folgenden Code zu kompilieren, wird ein Fehler bei der Kompilierung angezeigt, da die KlasseFinalClassParent
eine endgültige Klasse ist, die nicht weiter erweitert werden kann.
FinalClassParent.java
package com.example; public final class FinalClassParent { final void testCode(){ System.out.println("This is a final method"); } } //The type FinalClassChild cannot subclass the final class FinalClassParent class FinalClassChild extends FinalClassParent{ void testCode(){ System.out.println("This is overriding method"); } }
Ausgabe
Output: Compile Time error