Classe intérieure en Java | Expliqué

Classe intérieure en Java | Expliqué

Java fournit une fonctionnalité qui nous permet de créer une classe au sein d'une autre classe connue sous le nom de classe imbriquée ou classe intérieure et la classe qui tient la classe intérieure est appelée une classe extérieure. La classe intérieure peut être spécifiée de la même manière que nous spécifions tout autre attribut ou méthode de classe.

En Java, nous ne pouvons pas déclarer / créer une classe avec un modificateur d'accès privé afin que la classe soit accessible par n'importe quelle autre classe de l'intérieur ou de l'extérieur du package. Cependant, pour assurer la sécurité, nous devons créer des cours privés et pour le faire, nous pouvons créer des classes intérieures avec privé Modificateurs d'accès.

Cet article fournira un guide complet pour les classes intérieures en Java et à cet égard, nous devons comprendre les concepts suivants:

  • Qu'est-ce que la classe intérieure à Java
  • Syntaxe de base de la classe intérieure en Java
  • Comment créer et accéder à la classe intérieure en Java
  • Comment accéder aux attributs / méthodes de classe extérieure
  • Classe intérieure privée à Java
  • Classe intérieure statique à Java

Commençons!

Qu'est-ce que la classe intérieure à Java

Une classe qui est déclarée / créée au sein d'une autre classe est connue comme une classe intérieure. Il peut accéder à tous les attributs de classe et aux fonctions membres de la classe extérieure. Les principales caractéristiques des classes intérieures incluent une sécurité améliorée, la lisibilité au code et la maintenabilité.

Syntaxe

La syntaxe de base de la classe intérieure est décrite dans l'extrait ci-dessous:

classe OUTERCLASS
// déclarations
classe innerclass inner
// déclarations

Comment créer et accéder à la classe intérieure en Java

La création de classe intérieure est très simple, tout ce que nous avons à faire est de créer une classe au sein d'une classe. Afin d'accéder à la classe intérieure, nous devons d'abord créer une instance / un objet de la classe extérieure et ensuite, nous pouvons créer l'objet de la classe intérieure / imbriquée.

Exemple

L'extrait ci-dessus montre comment fonctionne une classe intérieure en Java.

Comment accéder aux attributs / méthodes de classe extérieure

La classe intérieure peut accéder aux attributs de classe ou aux fonctions membres de la classe extérieure, l'exemple suivant fournira une meilleure compréhension:

Exemple

L'extrait de code ci-dessous accéder à nom1 Attribut de la classe extérieure de la classe intérieure:

classe extérieure
String name1 = "John";
classe inner
Nom de chaîne publique ()
Nom de retour 1;



classe publique Mainclass
public static void main (String [] args)
OBJ1 extérieur = nouveau exter ();
Extérieur.Intérieur obj2 = obj1.New Inner ();
Système.dehors.println (obj2.nom());

Le code complet et sa sortie sont indiqués dans l'extrait de divagation ci-dessous:

La sortie authentifie que la classe intérieure accède avec succès à l'attribut de classe de la classe extérieure.

Classe intérieure privée à Java

En Java, une classe régulière ne peut pas être créée avec le privé Modificateur d'accès Cependant, une classe intérieure peut être créée avec l'accès privé et les objets en dehors de la classe ne peuvent pas accéder à la classe intérieure privée.

Exemple

Si quelqu'un essaie d'accéder à la classe intérieure privée, Java lancera une erreur:

classe extérieure
String name1 = "John";
classe privée inner
String name2 = "micheal";


classe publique Mainclass
public static void main (String [] args)
OBJ1 extérieur = nouveau exter ();
Extérieur.Intérieur obj2 = obj1.New Inner ();
Système.dehors.println (obj2.name2 + "" + obj1.name1);

L'ensemble du code est le même sauf le modificateur d'accès de classe interne:

L'extrait de l'extrait ci-dessus vérifie qu'une classe extérieure n'est pas en mesure d'accéder à la classe intérieure.

Classe intérieure statique à Java

Une classe intérieure peut également être créée avec le modificateur d'accès statique et l'avantage de la classe intérieure statique est qu'il n'est pas nécessaire de créer l'objet du extérieur classe pour la création de l'objet de classe intérieure statique.

L'instance / objet de la classe statique peut être créée à l'aide de la syntaxe suivante:

Classe extérieure.Innerclass obj = new exterclass.InnerClass ();

Exemple

classe extérieure
String name1 = "John";
classe statique inner
String name2 = "micheal";


classe publique Mainclass
public static void main (String [] args)
Extérieur.Intérieur obj2 = Nouveau extérieur.Intérieur();
Système.dehors.println (obj2.name2);

Le code complet et la sortie respective se déroulent comme ceci:

UN statique La classe intérieure n'est pas capable d'accéder aux attributs de classe ou aux méthodes de la classe extérieure:

L'extrait de code ci-dessus vérifie que la classe intérieure statique ne peut pas accéder au membre de la classe extérieure.

Conclusion

Dans Java, une classe peut être créée dans une autre classe appelée classe intérieure et pour créer une classe intérieure d'abord, nous devons créer une instance / objet de la classe extérieure et ensuite nous pouvons créer l'objet de la classe intérieure. UN classe intérieure privée peut également être créé en java et il ne peut pas être accessible à partir de la classe extérieure. De plus, dans un classe intérieure statique, il n'est pas nécessaire de créer l'objet du extérieur classe pour accéder à la classe statique intérieure et il ne peut pas accéder aux membres de la classe de la classe extérieure.