Maison  >  Article  >  Java  >  Introduction aux mots-clés finaux et statiques en Java

Introduction aux mots-clés finaux et statiques en Java

零下一度
零下一度original
2017-07-21 16:45:031796parcourir
1. final

La classe finale ne peut pas être héritée et n'a pas de sous-classes. Les méthodes de la classe finale sont finales par défaut

Les méthodes finales ne peuvent pas être remplacées par des méthodes de sous-classe, mais peuvent être héritées

les variables membres finales représentent des constantes et ne peuvent être affectées qu'une seule fois et ne peuvent pas être modifiées après l'affectation

final ne peut pas être utilisé pour modifier les constructeurs

private ne peuvent pas être remplacés par les méthodes de sous-classe. Les méthodes de type privé sont finales par défaut

Il existe trois types de variables modifiées par final : les variables statiques, les variables d'instance et les variables locales, qui représentent. trois types de variables respectivement constantes.

Remarque : Lorsqu'une variable finale est définie, elle peut être déclarée en premier sans donner de valeur initiale. Cette variable est également appelée final blank. Quelle que soit la situation, le compilateur s'assure que le blank final doit être initialisé. avant utilisation.

2. static
static signifie "global" ou "statique", utilisé pour le membre modificateur. les variables et les méthodes membres peuvent également former des blocs de code statiques, mais il n'existe pas de concept de variables globales dans le langage Java.
Les variables membres et les méthodes membres modifiées par static sont indépendantes de tout objet de la classe. Autrement dit, cela ne dépend pas d’une instance spécifique de la classe et est partagé par toutes les instances de la classe. Tant que cette classe est chargée, la machine virtuelle Java peut les trouver par défaut dans la zone méthode de la zone de données d'exécution en fonction du nom de la classe. Par conséquent, un objet statique est accessible avant la création de l’un de ses objets, sans référencer aucun objet.
Il peut y avoir une modification privée avant une variable statique, ce qui signifie que cette variable peut être utilisée dans le bloc de code statique de la classe, ou dans d'autres méthodes membres statiques ou méthodes membres non statiques de la classe, mais il ne peut pas être utilisé dans d'autres classes via le nom de la classe. Il est important de citer directement. En fait, vous devez comprendre que private fait référence aux restrictions d'autorisation d'accès, et static signifie qu'il peut être utilisé sans instanciation, ce qui est beaucoup plus facile à comprendre. L'effet de l'ajout d'autres mots-clés d'autorisation d'accès avant static est également le même.
Les variables membres modifiées statiques et les méthodes membres sont habituellement appelées variables statiques et méthodes statiques. Elles sont accessibles directement via le nom de la classe. La syntaxe d'accès est :
Nom de la méthode statique (liste de paramètres. . .)
  Nom de la classe. Nom de la variable statique
Le bloc de code modifié avec static représente un bloc de code statique Lorsque la machine virtuelle Java (JVM) charge la classe, le bloc de code sera exécuté.
1. Variables statiques
Les variables membres de la classe peuvent être classées en deux types selon qu'elles sont statiques : l'une est une variable modifiée par la statique, appelée variable statique ou variable de classe ; qui n'est pas modifié par static. Les variables modifiées par static sont appelées variables d'instance. La différence entre les deux est :
Il n'y a qu'une seule copie de la variable statique dans la mémoire (pour économiser de la mémoire). La JVM n'alloue de la mémoire qu'une seule fois pour la variable statique. L'allocation de mémoire de la variable statique est terminée pendant le processus. processus de chargement de classe et est directement accessible par le nom de la classe (Pratique), bien sûr, il est également accessible via des objets (mais ce n'est pas recommandé).
Pour les variables d'instance, avant la création d'une instance, la mémoire sera allouée une fois pour la variable d'instance. Les variables d'instance peuvent avoir plusieurs copies dans la mémoire sans s'affecter les unes les autres (flexible).
2. Méthodes statiques
Les méthodes statiques peuvent être appelées directement via le nom de la classe, et n'importe quelle instance peut également être appelée. Par conséquent, les mots-clés this et super ne peuvent pas être utilisés dans les méthodes statiques, ainsi que les variables d'instance. de la classe n'est pas accessible directement. Et les méthodes d'instance (c'est-à-dire les variables membres et les méthodes membres sans statique) ne peuvent accéder qu'aux variables membres statiques et aux méthodes membres de la classe à laquelle elles appartiennent. Parce que les membres d’une instance sont associés à des objets spécifiques ! Cela doit être compris et compris, pas mémorisé ! ! !
Parce que les méthodes statiques sont indépendantes de toute instance, les méthodes statiques doivent être implémentées et ne peuvent pas être abstraites.
3. Bloc de code statique
Le bloc de code statique est également appelé bloc de code statique dans une classe qui est indépendant des membres de la classe. à volonté. Ce n'est pas dans le corps de la méthode, la JVM exécutera ces blocs de code statique lors du chargement de la classe. S'il y a plusieurs blocs de code statiques, la JVM les exécutera dans l'ordre dans lequel ils apparaissent dans la classe. et chaque bloc de code ne sera exécuté qu'une seule fois.
4. Que signifient ensemble static et final ?
Static final est utilisé pour modifier les variables membres et les méthodes membres. Il peut être simplement compris comme une « constante globale » !
Pour les variables, cela signifie qu'une fois qu'une valeur est donnée, elle ne peut plus être modifiée et est accessible via le nom de la classe.
Pour les méthodes, cela signifie qu'elles ne peuvent pas être remplacées et sont accessibles directement via le nom de la classe.
                                                                                                                                                                                                                                                   Pour les constantes d'instance modifiées par static et final, l'instance elle-même ne peut pas être modifiée, mais pour les variables d'instance de certains types de conteneurs (par exemple, ArrayList, HashMap), elle ne peut pas. La variable de conteneur elle-même peut être modifiée, mais les objets stockés dans le conteneur peut être modifié. Ceci est beaucoup utilisé en programmation.
L'objet "installé" dans la variable de type conteneur modifié par static final peut être modifié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn