Modificateur final

À l'Afrique 2021-08-19 22:51:51 阅读数:431

modificateur final

finalModificateur

  • finalInJavaEst un mot - clé réservé,Les variables membres peuvent être déclarées、Méthodes、Classes et variables locales.Une fois que vous aurez fait une déclaration de citationfinal,Vous ne pourrez pas modifier cette citation,Le compilateur vérifie le Code,Si vous essayez d'initialiser à nouveau la variable,Le compilateur signale une erreur de compilation.

1、finalUtilisation de base des mots clés

1.1Modifier la variable

  • Pour les variables membres ou locales(Les variables d'une méthode ou d'un bloc de code sont appelées variables locales)Déclaré commefinalTout s'appellefinalVariables.finalLes variables sont souvent etstaticMots clés utilisés ensemble,Comme constante.
  • finalLors de la modification des variables du type de données de base,La valeur initiale doit être attribuée et ne peut être modifiée,Lors de la modification d'une variable de référence,La variable de référence ne peut plus pointer vers un autre objet

Par exemple:

package com.q._final;
/*
* final :
* Représente le dernier,Immuable */
public class FinalData {
public final String s = "abc";
public void test(){
final Object obj = new FinalData();
}
}

QuandfinalUne erreur est signalée lorsque la variable de type de données de base est modifiée sans valeur initiale et que la variable de référence pointe vers un autre objet

QuandfinalModifier le type de données de base lorsque la variable est modifiée,Il y aura une erreur

1.2Méthode de modification

final La méthode peut également être déclarée . La méthode est précédée de finalMots clés, Cette méthode ne peut pas être dépassée par une méthode d'une sous - classe . Si vous pensez qu'une méthode fonctionne assez bien , Si aucun changement n'est nécessaire dans la Sous - classe , Vous pouvez déclarer que cette méthode est final.final La méthode est plus final La méthode doit être rapide , Parce qu'il y avait déjà une liaison statique au moment de la compilation , Il n'est pas nécessaire de se lier dynamiquement au moment de l'exécution .

3.Classe de modification

Utiliserfinal La classe à décorer s'appelle finalCatégorie.final Les classes ont généralement une fonctionnalité complète , ..Ils ne peuvent pas être hérités .Java Il y a beaucoup de classes dans finalDe,Par exemple,String, Interger Et autres classes d'emballage .

2 、Analyse approfondiefinalMots clés

1.Parfinal Le contenu de l'objet modifié est variable

Bien que l'objet soit final L'objet modificateur n'est pas héréditaire , Mais son contenu peut encore être modifié

2.final Les mots clés sont liés à staticComparer

static Lorsque le mot - clé modifie une variable , La variable sera initialisée lorsque la classe sera chargée , Ne sera pas chargé à nouveau en raison de la création de l'objet , Quand la variable est static La modification signifie que la variable n'est initialisée qu'une seule fois

package com.q._final;
/*
* final :
* Représente le dernier,Immuable */
public class FinalData {
public final String s = "abc";
public void test(){
final Object obj = new FinalData();
}
public final double a= Math.random();
public static double b= Math.random();
public static final double c= Math.random();
public static void main(String[] args) {
FinalData finalData1 = new FinalData();
FinalData finalData2 = new FinalData();
FinalData finalData3 = new FinalData();
System.out.println(finalData1.a);
System.out.println(finalData2.a);
System.out.println(b);
System.out.println(b);
System.out.println(c);
}
}

Comme le montre la figure ,ParstaticVariables modifiéesj, Bien que deux objets aient été créés , La valeur de la paire n'a pas changé .
final Modifier les variables d'instance L'objet doit être créé new Affectation du temps

Copyright:Cet article est[À l'Afrique]Établi,Veuillez apporter le lien original pour réimprimer,remercier。 https://fra.fheadline.com/2021/08/20210819225147842U.html