Maison  >  Article  >  Java  >  Classe imbriquée en Java

Classe imbriquée en Java

WBOY
WBOYoriginal
2024-08-30 16:00:19707parcourir

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

Catégories de classe imbriquée en Java

Une classe imbriquée est divisée en deux catégories :

  1. Classe imbriquée statique : Nous faisons référence à une classe imbriquée déclarée avec le mot-clé « static » comme une classe imbriquée statique. Les classes statiques imbriquées sont accessibles en faisant référence à la classe externe. La classe imbriquée, qui possède une classe statique, ne peut pas accéder aux variables et méthodes non statiques de la classe externe.
  2. Classe interne : Une classe imbriquée non statique est une classe interne qui n'est pas déclarée statiquement. Aucune classe imbriquée statique n'aurait accès à toutes les variables et méthodes statiques et non statiques, même si elle est déclarée privée. La classe interne a également deux types.
  • Classes intérieures locales
  • Classes internes anonymes

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 {
....
}
}

Utilisation de la classe imbriquée en Java

Dans le monde de la programmation, la classe Nested joue un rôle important, comme indiqué ci-dessous :

  • L'imbrication de la classe revient à regrouper des classes dans une autre portée de classe. Vous ne pouvez pas utiliser de classes imbriquées ailleurs.
  • Mène à la lisibilité et à la maintenabilité : L'imbrication des classes offre une meilleure lisibilité du code et est plus facile à maintenir car elle n'affecte pas les autres classes.
  • Code réduit : L'utilisation de classes imbriquées réduit les lignes de code, conduisant à une optimisation.
  • Augmente l'encapsulation : Dans les classes imbriquées, les classes internes ont accès au membre de la classe externe englobante. Dans le même temps, la classe externe ne peut pas accéder directement aux membres de la classe interne. De plus, la classe interne n'est ni visible ni accessible depuis les programmes extérieurs.

Exemples de classe imbriquée en Java

Vous trouverez ci-dessous des exemples de classes imbriquées en Java :

Exemple n°1

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 :

Classe imbriquée en Java

Exemple n°2

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 :

Classe imbriquée en Java

Exemple #3

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 :

Classe imbriquée en Java

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Classe Wrapper en JavaArticle suivant:Classe Wrapper en Java