Cet article analyse principalement les mots-clés Java courants final, static, super, et ce en détail pour faciliter la référence des lecteurs. Les détails sont les suivants :
1. finale
1) Modifier la classe :
Indique que cette classe ne peut pas être héritée
2) Modifier la méthode (méthode)
Indique que cette méthode ne peut pas être remplacée (@override)
3) Modifier la variable (variable)
Indique que la valeur de cette variable ne peut pas être modifiée ultérieurement. Elle est souvent utilisée pour modifier des constantes immuables.
Remarque : final signifie littéralement « final » et « immuable ». Il est plus pratique de le mémoriser en combinant le sens.
2. statique (les deuxième et troisième méthodes sont couramment utilisées)
1) Modifier la classe :
(Pas couramment utilisé) ne peut être utilisé que pour modifier les classes internes ne sont pas autorisées à déclarer de cette façon.
2) Modifier la méthode (méthode)
Les méthodes statiques appartiennent à la classe (partagée entre les objets), pas à un certain objet. Il n'est pas nécessaire de créer un objet, vous pouvez utiliser le nom de la classe pour appeler cette méthode.
(Lorsque le programme est exécuté, le bytecode de la classe est chargé en mémoire. Lorsque la classe ne crée pas d'objet, la variable de classe s'est vu allouer de la mémoire et la variable d'instance se voit allouer de l'espace mémoire uniquement lorsqu'un objet spécifique est créé. )
3) Modifier la variable (variable)
Semblable à 2), les variables sont partagées au niveau de la classe et il n'est pas nécessaire de créer des objets, mais le changement de valeur de la variable est intégral, c'est-à-dire si l'objet A change la valeur d'une variable statique en opérant. dessus, alors l'objet B opérera dessus est la variable statique modifiée.
Remarque : Les blocs de code modifiés avec static sont appelés blocs de code statiques. Les blocs de code statiques sont exécutés en premier lorsque la JVM charge la classe. Peu importe où ils sont placés, ils sont exécutés en premier, puis les blocs de code normaux sont exécutés. Il peut y avoir plusieurs blocs de code statiques, qui seront exécutés par la JVM dans l'ordre d'apparition. Chaque bloc de code ne sera exécuté qu'une seule fois.
Les mots-clés this et super ne peuvent pas apparaître dans les méthodes statiques.
3. super : (faisant référence à la classe parent)
1) Lié à la classe (classe parent, également appelée super classe) :
Appelez le constructeur de la classe parent via super(paramètre 1, paramètre 2,..., paramètre n);
2) Lié à la méthode (méthode)
super.Method(paramètre 1, paramètre 2,..., paramètre n) appelle la méthode remplacée de la classe parent ;
3) Lié à la variable (variable)
super.variable, appelle la variable de la classe parent
Remarque : super doit être utilisé dans la première ligne du constructeur de sous-classe ;
Lorsque la classe parent n'a pas de constructeur sans paramètres, la sous-classe doit utiliser super pour appeler explicitement le constructeur de la classe parent. Super fait référence à la classe parent.
4. this : (référence à l'objet actuel)
1) Lié à la classe :
this(paramètre 1, paramètre 2,..., paramètre n), ceci est un constructeur ordinaire. Seul le constructeur (autre) peut appeler le constructeur (this), et les fonctions ordinaires ne peuvent pas appeler le constructeur.
2) Méthode liée :
Appeler une méthode sur l'objet courant
3) Variable (variable) liée :
Appeler la variable de l'objet courant
Remarque : this(); et super(); appeler explicitement le constructeur ne peuvent être placés que dans la première ligne de la construction ;
this.method..();super.method..(); peut être placé n'importe où et utilisé comme une méthode normale ;
Il existe une grande différence entre les constructeurs et les méthodes utilisant le mot-clé this. La référence de méthode this pointe vers l’instance de la classe sur laquelle la méthode est exécutée. Les méthodes statiques ne peuvent pas utiliser le mot-clé this, car les méthodes statiques n'appartiennent pas aux instances de la classe, cela n'a donc rien à indiquer. Le this du constructeur pointe vers un autre constructeur de la même classe avec une liste de paramètres différente.