Accéder au contenu principal
Documents
Tableaux JavaProgrammation orientée objet en JavaTraitement des fichiers en JavaIntroduction To JavaLes bases du langage JavaMots-clés Java

mot-clé final en Java

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.

final int MAX_VALUE = 100;

Initialisation de la final Variables

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.

public class FinalInitialization {
    final int MAX_VALUE;

    public FinalInitialization() {
        MAX_VALUE = 100;
    }
}

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.

class Parent {
    public final void display() {
        System.out.println("This is a final method.");
    }
}

3. final Classes

Une classe final ne peut pas être sous-classée, ce qui empêche l'héritage.

public final class FinalClass {
    // Class implementation
}

Exemples

Exemple 1 : final Variable

public class FinalVariableExample {
    public static void main(String[] args) {
        final int MAX_VALUE = 100;
        System.out.println("MAX_VALUE: " + MAX_VALUE);
        // MAX_VALUE = 200; // This will cause a compilation error
    }
}

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

class Parent {
    public final void display() {
        System.out.println("This is a final method.");
    }
}

class Child extends Parent {
    // public void display() { // This will cause a compilation error
    //     System.out.println("Attempting to override.");
    // }
}

public class FinalMethodExample {
    public static void main(String[] args) {
        Child obj = new Child();
        obj.display();
    }
}

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 class FinalClass {
    public void show() {
        System.out.println("This is a final class.");
    }
}

// class SubClass extends FinalClass { // This will cause a compilation error
// }

public class FinalClassExample {
    public static void main(String[] args) {
        FinalClass obj = new FinalClass();
        obj.show();
    }
}

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.
    public class FinalStaticExample {
        public static final double PI = 3.14159;
    }
  • 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.

Apprendre l'essentiel de Java

Développez vos compétences en Java à partir de la base et maîtrisez les concepts de programmation.
Commencez à apprendre gratuitement