La finale signifie littéralement "dernier, final". Cette signification est également exprimée en Java.
Final peut être utilisé pour modifier les variables (y compris les attributs de classe, les attributs d'objets, les variables locales et les paramètres formels), les méthodes (y compris les méthodes de classe et les méthodes d'objet) et les classes.
1. Classe de modification finale:
La classe de modification finale signifie que cette classe a déjà eu le sens "dernier, final". Par conséquent, les classes modifiées avec Final ne peuvent pas être héritées, c'est-à-dire qu'ils ne peuvent pas avoir leurs propres sous-classes.
Si la vue hérite d'une classe qui a été modifiée avec Final, une erreur peut se produire pendant la compilation.
2. Méthode de modification finale:
La méthode de modification finale signifie que cette méthode a déjà le sens "dernier, final", c'est-à-dire que cette méthode ne peut pas être réécrite (plusieurs méthodes de modification finale peuvent être surchargées).
Une chose à noter ici est que parce que la condition préalable à l'écrasement est que la sous-classe peut hériter de cette méthode à partir de la classe parent, si la méthode finale modifiée de la classe parent a également des autorisations de contrôle d'accès privées,
Cette méthode ne peut pas être héritée directement de la sous-classe. Par conséquent, le même nom de méthode et les paramètres peuvent être définis dans la sous-classe à l'heure actuelle. À l'heure actuelle, il n'y aura pas de contradiction entre la réécriture et la finale.
De nouvelles méthodes ont été redéfinies dans les sous-classes.
La classe publique B étend un {public static void main (String [] args) {} public void getName () {}} classe A {/ ** * En raison d'une modification privée, cette méthode ne peut pas être héritée dans la sous-classe. Par conséquent, la méthode GetName dans la sous-classe est redéfinie, * appartient à la sous-classe elle-même, et la compilation est normale * / private final Void getName () {} / * En raison de la modification PBLIC, la sous-classe peut hériter de cette méthode, résultant en la réécriture de la méthode finale de la classe parent, et l'erreur de compilation publique Vende final GetName () {} *3. Variables de modification finales:
La variable modifiée finale signifie que cette variable a le sens "dernier, final". Une fois la variable finale définie et initialisée pour la première fois, la valeur de variable modifiée finale ne peut pas être modifiée.
Voici quelques problèmes à noter:
1. Variables modifiées finales, qu'ils soient des attributs de classe, des attributs d'objets, des paramètres formels ou des variables locales, ces variables doivent être affichées initialisées (c'est-à-dire spécifier la valeur initiale de leur affichage).
Pour les paramètres formels modifiés par final, il est facile à comprendre car ils sont transmis par des paramètres réels.
Pour les variables locales modifiées par final, la même que les variables qui ne sont pas modifiées par Final, elles doivent afficher l'initialisation. C'est-à-dire que les variables locales doivent être initialisées.
Pour les attributs de classe générale et les attributs d'objets, il peut être vu à partir du processus d'initialisation de la classe et de l'objet que l'initialisation par défaut est d'abord effectuée. Ensuite, les variables avec les affectations affichées sont à nouveau initialisées.
Cependant, pour les attributs de classe et les attributs d'objet modifiés par final, si l'initialisation n'est pas affichée, la valeur par défaut sera la valeur d'initialisation par défaut, ce qui contredit le point de départ de final lui-même. Par conséquent, la syntaxe Java stipule:
Les attributs de classe et les attributs de variables modifiés par final doivent être affichés et initialisés attribués.
De plus, que ce soit pour les types de données de base ou les types de données de référence, les variables modifiées finales sont affichées pour la première fois et ne peuvent pas être modifiées après initialisation. Il est facile à comprendre pour les types de données de base. Pour référence
Type de données, les variables de référence pointent vers l'objet réel, mais ils stockent l'adresse de l'objet pointé. Par conséquent, sa valeur ne peut pas être modifiée ne signifie pas que l'objet pointé ne peut pas être modifié.
4.
En Java, les variables macro / le remplacement des macro se réfèrent au fait que dans le code Java, certaines variables peuvent être directement remplacées par leurs propres valeurs pendant la période de compilation et compilées dans le fichier .class. Par conséquent, ce changement n'existe plus dans le fichier .class compilé.
Dans les variables de la chaîne de type, parfois les situations suivantes sont souvent rencontrées:
Test de classe publique {public static void main (String [] args) {String country = "China"; String name = "qqyumidi"; String userInfo = country + name; // Après la compilation, les variables du pays et du nom sont toujours là, String User = "China" + "qqyumidi"; // Après la compilation, il devient Chinaqqyumidi directement}}Dans la ligne 9 du code ci-dessus, le résultat de la variable compilée est directement Chinaqqyumidi. Dans la ligne 8, comme le pays et le nom sont des variables ordinaires, le compilateur ne peut pas déterminer directement la valeur de l'utilisateur
Le résultat après compilation ici n'est pas directement Chinaqqyumidi.
Cependant, si vous souhaitez que le code de la ligne 8 soit représenté directement sous le nom de Chinaqqyumidi pendant la période de compilation, vous devez utiliser le modificateur final pour modifier le pays et nommer des variables.
Raison: La variable modifiée par le modificateur final peut déterminer directement sa valeur pendant la période de compilation en raison de ses propres caractéristiques, et cette valeur est immuable. Au cours du processus de compilation, ses variables peuvent être directement converties en leurs valeurs de représentation.
Test de classe publique {public static void main (String [] args) {final String country = "China"; Nom de chaîne finale = "qqyumidi"; String userInfo = country + name; // Après la compilation, il est directement Chianqqyumidi}}Ce qui précède est le contenu complet des points de connaissance du modificateur final Java (article à lire) que l'éditeur vous apporte. J'espère que cela vous sera utile et soutenir Wulin.com plus ~