Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Comprendre le mot-clé final en Java : variables, méthodes et classes

Mot-clé final en Java

Découvrez comment le mot-clé final de Java protège les constantes, empêche la surcharge de méthodes et bloque l'héritage de classes, avec des exemples clairs.

En Java, le mot-clé final indique qu'une entité – variable, méthode ou classe – ne peut pas être modifiée après sa définition initiale. Ce contrat d'immuabilité est appliqué au moment de la compilation, offrant aux développeurs des garanties sur le comportement du programme.


1. Variables finales

Quand vous déclarez une variable comme final, sa valeur est verrouillée après la première affectation. C'est la manière standard de définir des constantes en Java.

class Main { public static void main(String[] args) { // Déclarer une variable finale final int AGE = 32; // La ligne suivante provoquerait une erreur de compilation // AGE = 45; System.out.println("Âge : " + AGE); } } 

Le compilateur refusera de compiler le code qui tente de réaffecter AGE, émettant une erreur similaire à :

cannot assign a value to final variable AGE AGE = 45; ^ 

Astuce : Par convention, les noms de constantes sont écrits en majuscules avec des underscores (ex. MAX_SIZE) pour signaler leur immuabilité.


2. Méthodes finales

Les méthodes finales font partie du filet de sécurité de l'héritage en Java. Quand une méthode est marquée final, aucune sous-classe ne peut la redéfinir, préservant l'implémentation originale.

class FinalDemo { // Méthode finale public final void display() { System.out.println("This is a final method."); } } class Main extends FinalDemo { // Tentative de redéfinition – erreur de compilation public final void display() { System.out.println("The final method is overridden."); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } } 

Tenter de redéfinir la méthode display() produira une erreur telle que :

display() in Main cannot override display() in FinalDemo public final void display() { ^ overridden method is final 

3. Classes finales

Une classe final ne peut pas être sous-classée. Cela est souvent utilisé pour des types critiques pour la sécurité ou immuables, assurant que le comportement de la classe reste inchangé.

// Définition de classe finale final class FinalClass { public void display() { System.out.println("This is a final class."); } } // Tentative d'étendre la classe finale class Main extends FinalClass { public void display() { System.out.println("The final class is overridden."); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } } 

Le compilateur rejettera cet héritage avec :

cannot inherit from final FinalClass class Main extends FinalClass { ^ 

Java

  1. Mot-clé Static C# : Maîtriser les variables, méthodes et classes statiques
  2. L'opérateur instanceof en Java : guide complet
  3. Comprendre les classes imbriquées statiques en Java : utilisation, différences et exemples
  4. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  5. Le pattern Singleton en Java expliqué : implémentation et utilisation sûre
  6. Maîtriser la réflexion Java : inspection des classes, méthodes et champs à l'exécution
  7. Maîtriser Java ObjectOutputStream : Sérialisation, méthodes et exemples pratiques
  8. Maîtriser les génériques Java : Construire du code réutilisable et type-safe
  9. Maîtriser les opérations sur les fichiers Java avec java.io – Création, lecture, écriture et suppression