Final:
Final vous permet de contrôler si vos membres, méthodes ou classes peuvent être écrasés ou hérités.
Lorsque vous définissez une variable dans une classe, ajoutez le mot-clé final avant, cela signifie qu'une fois que cette variable est initialisée, elle ne peut pas être modifiée. , leurs références ne peuvent plus être modifiées. Son initialisation peut être à deux endroits, l'une est sa définition, et l'autre est que dans le constructeur, l'un ne peut choisir que l'un des deux.
Le programme suivant démontre simplement l'utilisation générale de la finale:
Classe publique Test {final int t = 1;
Une autre utilisation consiste à définir les paramètres de la méthode comme final. . Lorsque vous n'avez pas besoin de modifier la variable d'objet en tant que paramètre dans la méthode, l'utilisation explicite de Final est déclarée, ce qui vous empêchera de modifier involontairement et d'affecter la méthode d'appel.
De plus, lorsque vous utilisez des variables de paramètres dans la méthode de la classe intérieure, cette variable de paramètre doit être déclarée finale avant de pouvoir être utilisée, comme indiqué dans le code suivant:
Classe publique Test {void Print (Final String Str) {Class InnerTest {innerTest () {System.out.println (Str); {Test test = nouveau test ();
Il y a deux raisons pour lesquelles la méthode finale déclare la méthode comme finale. classe héritée de cette classe. Le second est un mécanisme qui permet au compilateur de convertir tous les appels en cette méthode en appels en ligne (en ligne). ., comme la sauvegarde des points de rupture, des piles, etc., cela peut améliorer l'efficacité de votre programme. Vous devez donc utiliser Final pour définir la méthode avec prudence.
Classe finale lorsque vous utilisez final sur une classe, vous devez réfléchir attentivement, car une classe finale ne peut être héritée par personne, ce qui signifie que cette classe est une classe de feuilles dans un arbre d'héritage, et cette classe la conception a été considérée comme parfaite sans modification ou extension. Pour les membres de la classe finale, vous pouvez le définir comme définitif ou non final. Pour les méthodes, parce que la classe appartient à Final, elles deviennent naturellement définitivement. Vous pouvez également ajouter explicitement une finale à la méthode de la classe finale, mais cela n'a évidemment pas de sens.
Enfin:
Le mot-clé enfin est le meilleur ajout au modèle de gestion des exceptions Java. La structure enfin permet au code de toujours exécuter, que l'exception se produise ou non. Utilisez enfin pour maintenir l'état interne d'un objet et nettoyer les ressources non mémoire. Sans enfin, votre code sera déroutant. Par exemple, le code suivant illustre comment vous écrivez du code pour gratuitement des ressources non mémoire sans utiliser enfin:
public void writeFile (String filepath, string filename, String args) lance ioException {filewriter fw = new FileWriter (filepath + filen); (); lancer E;} // 2 fw.close ();
Ce code crée un objet FileWriter et appelle la méthode d'écriture. Avant de quitter la méthode, vous devez fermer l'objet FileWriter pour éviter les vulnérabilités des ressources. Pour accomplir cette tâche, nous appelons Close à // 2, qui est la dernière déclaration de la méthode. Mais que se passe-t-il si une exception se produit dans le bloc d'essai? Dans ce cas, l'appel serré à // 2 ne se produit jamais. Par conséquent, vous devez attraper cette exception et insérer un autre appel à fermer à // 1 avant de rééditer cette exception. Cela garantit que l'objet FileWriter est fermé avant de quitter la méthode. Écrire du code comme celui-ci est à la fois lourd et sujet aux erreurs, mais il est essentiel sans enfin. Enfin, le code précédent peut être réécrit dans le formulaire suivant:
public void writeFile (String filepath, String FileName, String args) lance ioException {filewriter fw = new FileWriter (filepath + filen); fw .close ();}}
Le bloc enfin garantit que la méthode étroite est toujours exécutée, si une exception est émise dans le bloc d'essai. Par conséquent, il est assuré que la méthode de fermeture est toujours appelée avant de quitter la méthode. De cette façon, vous pouvez être sûr que l'objet FileWriter est fermé et que vous n'avez pas divulgué de ressources.
finaliser:
Selon la spécification du langage Java, le JVM garantit que cet objet est inaccessible avant d'appeler la fonction finalisée, mais le JVM ne garantit pas que cette fonction sera appelée. De plus, la spécification garantit également que la fonction finalisée s'exécute au plus une fois.
Généralement, la finalisation est utilisée pour publier certaines ressources qui ne sont pas faciles à contrôler et sont très importantes, telles que certaines opérations d'E / S et les connexions de données. La publication de ces ressources est très critique pour l'ensemble de l'application. Dans ce cas, les programmeurs doivent gérer principalement ces ressources via le programme lui-même (y compris la libération) et compléter la méthode de libération des ressources avec la fonction finalisée comme un supplément pour former un mécanisme de gestion de l'assurance double, plutôt que de s'appuyer uniquement sur la finalisation pour libérer les ressources.
Résumer
Modificateur final (mot-clé) Si une classe est déclarée finale, cela signifie qu'il ne peut pas dériver de nouvelles sous-classes et ne peut pas être hérité en tant que classe parent. Par conséquent, une classe ne peut pas être déclarée à la fois abstraite et finale. La déclaration des variables ou des méthodes en tant que final peut garantir qu'ils ne sont pas modifiés pendant l'utilisation. Les variables déclarées par Final doivent avoir une valeur initiale lorsqu'elle est déclarée et ne peut être lue que dans les références futures et ne peut pas être modifiée. Les méthodes déclarées comme finales peuvent également être utilisées uniquement et ne peuvent pas être surchargées.
Enfin, un bloc final est fourni pour effectuer toute opération de compensation lorsque l'exception est traitée. Si une exception est lancée, la clause Catch Matching sera exécutée et le contrôle entrera dans le bloc enfin (le cas échéant).
Finalize - Nom de la méthode. La technologie Java permet d'utiliser la méthode finaliser () pour effectuer le travail de nettoyage nécessaire avant que le collecteur des ordures ne nettoie les objets de la mémoire. Cette méthode est appelée par le collecteur des ordures lors de la détermination que l'objet n'est pas référencé. Il est défini dans la classe d'objets, donc toutes les classes l'héritent. La sous-classe remplace la méthode finaliser () pour organiser les ressources système ou effectuer d'autres travaux de nettoyage. La méthode finaliser () est appelée sur l'objet avant que le collecteur de déchets ne le supprime.