Exemple de mot clé Java Final

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:

  1. Mot clé final comme modificateur de variable

  2. Mot clé final comme modificateur de méthode

  3. 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éthodefinaltestCode()

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