Une déclaration de classe avec le mot Final est connue sous le nom de classe finale. La classe finale en Java ne peut pas être héritée et ne peut pas être étendue par d'autres classes. Un cours final peut prolonger d'autres cours ; Il peut s'agir d'une sous-classe mais pas d'une superclasse. Lors de la création d’une classe immuable, la classe finale est la meilleure réponse. La classe finale est une déclaration qui dit qu'elle est finale, c'est-à-dire que cette classe n'a pas de sous-classe et ne peut pas être étendue davantage. Le cours final garde une importance supplémentaire en plus de l'immuabilité.
Parfois, il est préférable d'utiliser la classe finale à des fins de sécurité, car certaines classes effectuent des tâches liées à la sécurité comme l'authentification et l'autorisation. Dans un tel scénario, les chaînes et les méthodes à l'intérieur de la classe ne doivent pas être modifiées pendant tout le cycle de vie de l'application, il est donc préférable de rendre la classe finale.
PUBLICITÉ Cours populaire dans cette catégorie MODÉLISATION ET VALORISATION FINANCIÈRE - Spécialisation | 51 Série de cours | 30 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
En faisant la classe, Final améliore l'efficacité de l'application.
Syntaxe :
final class Student { private int age = 3; } /* // Trying to inherit the Student class class Info extends Student{ public static void main(String[] args) { //creating instance of the HeavyVehicle class System.out.println(“I am unable to inherit the class with the final keyword”); } }
Le cours ci-dessus avec le dernier mot est définitif. L'extension de cette classe finale avec une autre produira des erreurs telles que « erreur : impossible d'hériter de l'étudiant final », comme indiqué dans la capture d'écran ci-dessous.
Lors de la déclaration d'une classe avec le mot-clé final, cela permet à JVM de faire des hypothèses et d'optimiser. Une fois que vous avez ajouté le mot-clé final à une classe en Java, la référence de cette classe ne peut plus être modifiée. Le compilateur vérifiera si un référencement reprend, produisant une erreur.
Que se passe-t-il si nous déclarons une classe finale et instancions une classe finale ? Ensuite, il se crée dans la zone de la piscine ; les objets créés dans le pool ont une fonction d'immuabilité spéciale. Certains des meilleurs exemples de classes Java immuables sont String, Integer, Double, etc.
Si vous déclarez une classe comme finale, alors elle déclare implicitement toutes les méthodes de cette classe comme finales. Le final est un modificateur en Java ; vous pouvez utiliser le mot-clé final sur une variable, une méthode ou une classe. Une fois le modificateur ajouté à la classe, toutes les variables et méthodes de cette classe seraient implicitement immuables. Rendre une classe immuable offre plusieurs avantages, tels qu'elle est en lecture seule et ne peut pas être partagée en toute sécurité dans plusieurs threads sans aucune synchronisation.
Voici les exemples suivants de classe Final en Java :
La classe HeavyVehicle ne permet pas l'héritage dans le programme donné puisqu'elle est déclarée classe finale.
Code :
//This class will not be extended final class HeavyVehicle{ void messages(){ System.out.println("Your Vehicle Insurance is going to be expire in the next month"); } } // Inheriting HeavyVehicle class is not allowed as it is a final class /*class Vehicle extends HeavyVehicle{ } */ //main class class Car{ public static void main(String[] args) { //creating instance of the HeavyVehicle class HeavyVehicle hvObj = new HeavyVehicle(); hvObj.messages(); } }
Si nous essayons d'hériter de la classe HeavyVehicle, nous obtiendrons l'erreur suivante, comme indiqué dans la capture d'écran ci-dessous.
Nous allons maintenant passer à la classe suivante, où nous créons une instance de la classe finale pour utiliser sa méthode. Vous trouverez ci-dessous le résultat du programme après avoir ignoré le processus d'héritage.
Dans ce programme, la classe HeavyVehicle est déclarée classe finale, elle ne peut donc pas être étendue dans l'autre classe, elle passe donc explicitement sa référence à la méthode de la classe Vehicle.
Code :
//This class will not be extended final class HeavyVehicle{ public double getDistanceCanCover(int mileage, double fuelStatus) { return mileage * fuelStatus; } } class Vehicle{ private int mileage; private double fuelStatus; Vehicle(int mileage, double fuelStatus){ this.mileage = mileage; this.fuelStatus = fuelStatus; } public void DisplayDistanceCanCover(HeavyVehicle hvObj) { double distCanCover = hvObj.getDistanceCanCover(this.mileage, this.fuelStatus); System.out.println("Distance Vehicle can cover in the available fuel: " + distCanCover); } } //main class class Car { public static void main(String[] args) { //creating instance of the HeavyVehicle class HeavyVehicle hvObj = new HeavyVehicle(); //creating instance of the Vehicle class Vehicle vehObj = new Vehicle(30, 3.5); //calling the method of the vehObj.DisplayDistanceCanCover(hvObj); } }
Dans l'exemple ci-dessus, nous pouvons voir comment une classe finale peut être utilisée efficacement. Le résultat du programme ci-dessus est donné ci-dessous.
Sortie :
Dans cet exemple, la classe finale hérite de l'autre classe, c'est-à-dire Student, mais aucune autre classe ne peut étendre la classe Info car il s'agit d'une classe finale.
Code :
class Student{ public void showDetails(String name, String email, int age) { System.out.println("\nStudent Name : "+ name); System.out.println("\nStudent Email : "+ email); System.out.println("\nStudent Age : "+ age); } } // Trying to inherit the Student class final class Info extends Student{ //main method of java to start program execution public static void main(String[] args) { //creating instance of this class Info infoObj = new Info(); //calling here method of the parent class infoObj.showDetails("Alex Carry", "[email protected]", 40); } }
Sortie :
Dans l'article ci-dessus, nous avons évoqué l'importance de la classe Final en Java. J'ai également constaté que les gens se réfèrent généralement à la classe finale en Java comme à une classe immuable. J'ai remarqué quelques points essentiels liés à la déclaration d'un cours final. Dans l'exemple donné, nous pouvons voir comment la classe finale peut être utilisée efficacement dans d'autres classes en la passant via des références.
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!