English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Comprendre profondément le mot-clé final en java

 Détails sur le mot-clé final en Java :

Préambule :

Le mot-clé final en Java est très important, il peut être appliqué aux classes, méthodes et variables. Dans cet article, je vais vous expliquer ce que signifie le mot-clé final ? Que signifie déclarer une variable, une méthode et une classe comme finale ? Quels sont les avantages de l'utilisation de final ? Enfin, il y a aussi quelques exemples d'utilisation du mot-clé final. Le mot-clé final est souvent utilisé avec static pour déclarer des constantes, et vous verrez également comment final améliore les performances de l'application.

Signification du mot-clé final63;

final est un mot-clé réservé en Java, utilisé pour déclarer des variables membres, des méthodes, des classes et des variables locales. Une fois qu'une référence est déclarée comme final, vous ne pouvez pas la changer, le compilateur vérifiera le code et signalera une erreur de compilation si vous essayez de réinitialiser la variable.

Qu'est-ce qu'une variable finale ?

Toute variable membre ou variable locale (les variables dans les méthodes ou les blocs de code sont appelées variables locales) déclarée comme final est appelée variable final. Les variables finales sont souvent utilisées avec le mot-clé static, en tant que constantes. Voici des exemples de variables finales :

public static final String LOAN = "loan";
LOAN = new String("loan") //erreur de compilation invalide

Les variables finales sont immuables.

Qu'est-ce qu'une méthode finale ?63;

final peut également déclarer une méthode. Ajoutez le mot-clé final devant une méthode, cela signifie que cette méthode ne peut pas être redéfinie par une méthode de la classe fille. Si vous pensez qu'une méthode a suffisamment de fonctionnalités et qu'elle ne doit pas être modifiée dans la classe fille, vous pouvez la déclarer comme finale. Une méthode finale est plus rapide qu'une méthode non finale, car elle est liée statiquement lors de la compilation et n'a pas besoin de lier dynamiquement au moment de l'exécution. Voici un exemple de méthode finale :

class PersonalLoan{
  public final String getName(){
    return "personal loan";
  }
}
class CheapPersonalLoan extends PersonalLoan{
  @Override
  public final String getName(){
    return "cheap personal loan"; //erreur de compilation : méthode surchargée est finale
  }
}

Qu'est-ce qu'une classe finale ?

Un classe déclarée avec final est appelée classe finale. Les classes finales sont généralement complètes et ne peuvent pas être héritées. Java contient de nombreuses classes finales, telles que String, Interger et d'autres classes de wrappers. Voici un exemple de classe finale :

 final class PersonalLoan{
  }
  class CheapPersonalLoan extends PersonalLoan{ //erreur de compilation : impossible d'hériter d'une classe finale
}

  Avantages du mot-clé final

Voici un résumé des avantages de l'utilisation du mot-clé final

  1. Le mot-clé final améliore les performances. La JVM et les applications Java mettent en cache les variables finales.
  2. Les variables finales peuvent être partagées en sécurité dans un environnement multithreadé sans besoin de coûts supplémentaires de synchronisation.
  3. L'utilisation du mot-clé final permet à la JVM d'optimiser les méthodes, les variables et les classes.

Classe immuable

Pour créer une classe immuable, utilisez le mot-clé final. Une classe immuable est une classe dont les objets, une fois créés, ne peuvent pas être modifiés. String est un exemple de classe immuable. Les classes immuables ont de nombreux avantages, telles que leurs objets sont lisibles, peuvent être partagés en environnement multithreadé de manière sécurisée, sans besoin de coûts supplémentaires de synchronisation, etc.

Points importants sur final

  1. Le mot-clé final peut être utilisé pour les variables membres, les variables locales, les méthodes et les classes.
  2. Les variables membres finales doivent être initialisées lors de leur déclaration ou dans le constructeur, sinon une erreur de compilation sera signalée.
  3. Vous ne pouvez pas affecter une valeur à nouveau à une variable finale.
  4. Les variables locales doivent être assignées une valeur lors de leur déclaration.
  5. Tous les variables dans une classe anonyme doivent être des variables finales.
  6. Une méthode finale ne peut pas être redéfinie.
  7. Une classe finale ne peut pas être héritée.
  8. Le mot-clé final est différent du mot-clé finally, utilisé pour la gestion des exceptions.
  9. Le mot-clé final est facile à confondre avec la méthode finalize(), définie dans la classe Object, appelée par le JVM avant la collecte de déchets.
  10. Toutes les variables déclarées dans une interface sont finales.
  11. Les mots-clés final et abstract sont inversés, une classe finale ne peut pas être abstract.
  12. Les méthodes finales sont liées au stade de compilation, ce qui est appelé liaison statique (static binding).
  13. Les variables finales non initialisées lors de la déclaration sont appelées variables finales vides (blank final variable), elles doivent être initialisées dans le constructeur ou appelées this() pour initialiser. Sinon, le compilateur affichera un message d'erreur "La variable finale (nom de la variable) doit être initialisée".
  14. Déclarer une classe, une méthode ou une variable comme finale peut améliorer les performances, de sorte que le JVM a la possibilité de faire des estimations, puis d'optimiser.
  15. Selon la convention du code Java, une variable finale est une constante, et généralement, le nom des constantes doit être en majuscules :
private final int COUNT = 10;

Déclarer un objet de collection comme final signifie que la référence ne peut pas être modifiée, mais vous pouvez y ajouter, supprimer ou modifier le contenu. Par exemple :

private final List Loans = new ArrayList();
list.add(“home loan”); //valid
list.add("personal loan"); //valid
loans = new Vector(); //not valid

Nous savons déjà ce que sont les variables finales, les méthodes finales et les classes finales. Utiliser final lorsque c'est nécessaire peut écrire des codes plus rapides et meilleurs.

 Merci de lire, j'espère que cela peut aider tout le monde, merci de votre soutien à ce site !

Vous pourriez aussi aimer