Une classe imbriquée fait référence à une classe qui se trouve à l'intérieur d'une autre classe. Java nous permet de créer des classes imbriquées en Java. Une classe imbriquée est l'un des membres de sa classe externe. Il peut également être déclaré public, privé, protégé ou par défaut. La classe imbriquée a accès à l’autre membre de la classe externe, alors que l’inverse n’est pas possible. Cela signifie que la classe externe n'a pas accès à un membre de classe imbriquée car la classe imbriquée est membre de sa classe externe englobante, donc le point (.) est utilisé pour accéder à la classe imbriquée et à ses membres. La classe imbriquée n'a aucun mot-clé statique.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Une classe imbriquée est divisée en deux catégories :
Syntaxe :
Dans la syntaxe ci-dessous, OuterClass a une classe interne InnerClass connue sous le nom de classe Nested.
//Outer class class OuterClass { //Inner class as a nested class class InnerClass { .... } }
Dans le monde de la programmation, la classe Nested joue un rôle important, comme indiqué ci-dessous :
Vous trouverez ci-dessous des exemples de classes imbriquées en Java :
Dans cet exemple, vous pouvez observer l'instanciation des classes internes en faisant référence à la classe externe.
Code :
// Outer class which contains nested class class Engine{ static double fuel = 20.0; //static nested class static class Ignition{ void showFuelSpend() { System.out.println("Fuel Spend = " + fuel + " Ltrs"); } } } //class uses nested class inside it public class NestedClassExample{ public static void main(String[] args) { //creating object of the nested class by referencing parent class Engine.Ignition engIgnitObj = new Engine.Ignition(); //calling method of the nested class engIgnitObj.showFuelSpend(); } <u>}</u>
Sortie :
Dans cet exemple, nous pouvons voir comment la classe interne peut être instanciée. Vous aurez besoin d'une instance de la classe interne pour créer une instance de la classe interne. Après avoir créé une instance de la classe Outer, il devient possible de créer une instance de la classe imbriquée en son sein.
Code :
//Outer class class Volume{ double x, y, z; Volume(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } // Nested inner class class Measurement{ //method to calculate the total area void totalArea(double i, double j) { System.out.println("\nArea for the provided container is " + (i * j)); } //method to calculate the total volume void totalVolume(double i, double j, double k) { System.out.println("\nVolume for the provided container is " + (i * j * k)); } } } public class NestedClassCalcExample { public static void main(String[] args) { //passing here all the parameter to constructor Volume volObj = new Volume(30.0, 25, 18.0); Volume.Measurement volMeasureObj = volObj.new Measurement(); // calculating total area volMeasureObj.totalArea(volObj.x, volObj.y); // calculating total volume volMeasureObj.totalVolume(volObj.x, volObj.y, volObj.z); } }
Sortie :
Cet exemple montre comment l'instanciation d'un objet de classe imbriqué se produit dans une instance de la classe externe.
Code :
//outer class class Electronic{ String circuitName, String circuitType; double circuitCost; //constructor of outer class Electronic(String name, String type, double cost) { this.circuitName = name; this.circuitType = type; this.circuitCost = cost; } String getCircuitName() { return this.circuitName; } //nested class class Circuit{ String circuitType; double circuitCost; void setCircuitType() { this.circuitType = "Transistor"; this.circuitCost = 430.0; } //get circuit type using this method String getCircuitType(){ return this.circuitType; } //get circuit cost using this method double getCircuitCost(){ return this.circuitCost; } } } public class Product{ public static void main(String[] args) { Electronic elObj = new Electronic("Amplifier", "Integrated", 375.0); Electronic.Circuit circuit = elObj.new Circuit(); //printing here the values before reset it System.out.println("\nCircuit Name : " + elObj.circuitName); System.out.println("\nCircuit Type : " + elObj.circuitType); System.out.println("\nCircuit Cost : " + elObj.circuitCost); //resetting some value circuit.setCircuitType(); //printing here the values before reset it System.out.println("\n\nCircuit Name : " + elObj.getCircuitName()); System.out.println("\nCircuit Type : " + circuit.getCircuitType()); System.out.println("\nCircuit Cost : " + circuit.getCircuitCost()); } }
Sortie :
Dans l'article ci-dessus, nous avons examiné en quoi la classe Nested est essentielle en Java. C'est une bonne pratique d'utiliser l'imbrication des classes. L'article ci-dessus décrit également la convivialité de la classe Nested.
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!