Exemple de mot clé Java Final
Le mot clé final en Java est un modificateur utilisé pour empêcher l'utilisateur de faire du code indésirable ou empêcher le code ou la valeur d'être modifié. Il est possible d'utiliser ce mot-clé dans 3 contextes. Elles sont:
-
Mot clé final comme modificateur de variable
-
Mot clé final comme modificateur de méthode
-
Mot clé final comme modificateur de classe
Chaque contexte a sa propre signification et ses restrictions implicites. Ils sont discutés en détail ci-dessous.
1. Mot clé FINAL comme modificateur de variable
Chaque contexte a son propre objectif. final
, lorsqu'il est utilisé avec une variable, il est spécifiquement pour empêcher l'utilisateur de changer la valeur n'importe où ailleurs dans le code. Une variablefinal
, une fois initialisée, sa valeur ne peut pas être modifiée.
Si la variablefinal
est juste déclarée mais pas initialisée, il est permis d'affecter une valeur à la variablefinal
une fois dans le code. Tout changement de la valeur de la variablefinal
plus d'une fois entraînera une erreur de compilation.
Par exemple, le code ci-dessous donnera une erreur de compilation en cas de tentative de compilation.
FinalVariableExample.java
package com.techfou; public class FinalVariableExample { final int count = 0; public FinalVariableExample() { count++; //The final field FinalVariableExample.count cannot be assigned } }
Sortie
Output: Compile Time error
2. Mot clé FINAL comme modificateur de méthode
final
, lorsqu'il est utilisé avec la méthode, il empêche la classe héritière de remplacer la définition de la méthode. Par exemple, l'exemple ci-dessous donne une erreur de compilation car la classeFinalMethodChild
essaie de remplacer la méthodefinal
testCode()
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"); } }
Sortie
Output: Compile Time error
3. Mot clé FINAL comme modificateur de classe
final
, lorsqu'il est utilisé pour une classe comme modificateur, il empêche la classe d'être étendue ou héritée par une autre classe. Par exemple, si vous essayez de compiler le code ci-dessous, cela donne une erreur de compilation car la classeFinalClassParent
est une classe finale qui ne peut pas être étendue davantage.
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"); } }
Sortie
Output: Compile Time error