Le mot-clé final en Java est un modificateur de non-accès qui peut être appliqué aux variables, aux méthodes et aux classes. Il est utilisé pour empêcher l'utilisateur de modifier davantage l'entité à laquelle il s'applique. Ce mot-clé joue un rôle crucial en garantissant l'immutabilité et en empêchant l'héritage ou la superposition de méthodes.
Utilisation
1. final Variables
Une variable final est une constante ; une fois initialisée, sa valeur ne peut être modifiée.
Une variable final doit être initialisée lors de sa déclaration ou dans un constructeur s'il s'agit d'une variable d'instance.
publicclassFinalInitialization{
final int MAX_VALUE;publicFinalInitialization(){MAX_VALUE=100;}}Propulsé par
2. final Méthodes
Une méthode final ne peut pas être remplacée par des sous-classes, ce qui garantit que l'implémentation de la méthode reste inchangée.
classParent{public final voiddisplay(){
System.out.println("This is a final method.");}}Propulsé par
3. final Classes
Une classe final ne peut pas être sous-classée, ce qui empêche l'héritage.
public final classFinalClass{// Class implementation}Propulsé par
Exemples
Exemple 1 : final Variable
publicclassFinalVariableExample{publicstaticvoidmain(String[] args){
final int MAX_VALUE=100;
System.out.println("MAX_VALUE: "+MAX_VALUE);// MAX_VALUE = 200; // This will cause a compilation error}}Propulsé par
Dans cet exemple, MAX_VALUE est une variable final. Si vous tentez de le réaffecter, vous obtiendrez une erreur de compilation.
Exemple 2 : final Méthode
classParent{public final voiddisplay(){
System.out.println("This is a final method.");}}classChildextendsParent{// public void display() { // This will cause a compilation error// System.out.println("Attempting to override.");// }}publicclassFinalMethodExample{publicstaticvoidmain(String[] args){
Child obj =newChild();
obj.display();}}Propulsé par
Ici, la méthode display de la classe Parent est marquée comme final, ce qui l'empêche d'être remplacée par la classe Child.
Exemple 3 : final Classe
public final classFinalClass{publicvoidshow(){
System.out.println("This is a final class.");}}// class SubClass extends FinalClass { // This will cause a compilation error// }publicclassFinalClassExample{publicstaticvoidmain(String[] args){
FinalClass obj =newFinalClass();
obj.show();}}Propulsé par
Dans cet exemple, FinalClass est déclaré comme final, ce qui signifie qu'il ne peut être étendu par aucune autre classe.
Conseils et bonnes pratiques
Immutabilité: Utilisez les variables final pour créer des constantes et vous assurer que leurs valeurs restent inchangées tout au long du programme.
La sécurité: Utilisez les méthodes final pour empêcher les sous-classes de modifier les méthodes critiques, ce qui peut contribuer à maintenir la sécurité et la cohérence.
Conception: Utilisez les classes final pour empêcher l'héritage lorsque vous concevez des classes immuables ou lorsque vous voulez vous assurer que l'implémentation de la classe ne peut pas être modifiée.
Variables statiques finales: Contrairement aux variables finales d'instance, les variables finales statiques ne peuvent pas être attribuées via les constructeurs. Ils sont généralement initialisés dans leur déclaration.
publicclassFinalStaticExample{publicstatic final double PI=3.14159;}Propulsé par
Performance: Dans certains cas, l'utilisation de final peut aider le compilateur Java et le compilateur JIT à optimiser le code, car elle fournit davantage d'informations sur l'invariabilité de la valeur.
Le mot-clé
finalen Java est un modificateur de non-accès qui peut être appliqué aux variables, aux méthodes et aux classes. Il est utilisé pour empêcher l'utilisateur de modifier davantage l'entité à laquelle il s'applique. Ce mot-clé joue un rôle crucial en garantissant l'immutabilité et en empêchant l'héritage ou la superposition de méthodes.Utilisation
1.
finalVariablesUne variable
finalest une constante ; une fois initialisée, sa valeur ne peut être modifiée.Initialisation de la
finalVariablesUne variable
finaldoit être initialisée lors de sa déclaration ou dans un constructeur s'il s'agit d'une variable d'instance.2.
finalMéthodesUne méthode
finalne peut pas être remplacée par des sous-classes, ce qui garantit que l'implémentation de la méthode reste inchangée.3.
finalClassesUne classe
finalne peut pas être sous-classée, ce qui empêche l'héritage.Exemples
Exemple 1 :
finalVariableDans cet exemple,
MAX_VALUEest une variablefinal. Si vous tentez de le réaffecter, vous obtiendrez une erreur de compilation.Exemple 2 :
finalMéthodeIci, la méthode
displayde la classeParentest marquée commefinal, ce qui l'empêche d'être remplacée par la classeChild.Exemple 3 :
finalClasseDans cet exemple,
FinalClassest déclaré commefinal, ce qui signifie qu'il ne peut être étendu par aucune autre classe.Conseils et bonnes pratiques
finalpour créer des constantes et vous assurer que leurs valeurs restent inchangées tout au long du programme.finalpour empêcher les sous-classes de modifier les méthodes critiques, ce qui peut contribuer à maintenir la sécurité et la cohérence.finalpour empêcher l'héritage lorsque vous concevez des classes immuables ou lorsque vous voulez vous assurer que l'implémentation de la classe ne peut pas être modifiée.finalpeut aider le compilateur Java et le compilateur JIT à optimiser le code, car elle fournit davantage d'informations sur l'invariabilité de la valeur.