Comment implémenter une classe imbriquée en Java?



Cet article sur les classes imbriquées en java vous aidera à comprendre comment implémenter des classes imbriquées à l'aide d'un exemple de programme.

En Java, une classe peut être définie dans une autre classe et ces classes sont appelées classes imbriquées. Ces classes vous aident à regrouper logiquement les classes qui ne sont utilisées qu'à un seul endroit. Cela augmente l'utilisation de l'encapsulation et crée un code plus lisible et maintenable. Ce blog sur «Classe imbriquée en Java» vous donnera une introduction rapide et précise aux classes imbriquées dans le . Voici les sujets traités dans ce blog:

Classe imbriquée en Java

La classe écrite dans une classe est appelée la classe imbriquée tandis que la classe qui contient la classe interne est appelée la classe externe. Voici quelques points à retenir pour les classes imbriquées en Java -





date type de données serveur sql
  • La portée d'une classe imbriquée est limitée par sa classe englobante.
  • Une classe imbriquée a accès aux membres de la classe dans laquelle elle est imbriquée. Mais la classe englobante ne peut pas accéder aux membres de la classe imbriquée.
  • Une classe imbriquée est son membre de classe englobant.
  • Une classe imbriquée peut être déclarée publique, privée, protégée ou package-private.

Types de classes imbriquées

Classe imbriquée interne / non statique: En Java, les classes non statiques sont un mécanisme de sécurité. Une classe ne peut pas être associée au access modifier private, mais si vous avez la classe comme membre d'une autre classe, alors la classe non statique peut être rendue privée.

Types de classes internes et moins



  • Classe intérieure
  • Classe interne locale de méthode
  • Classe intérieure anonyme

Classe intérieure

Pour créer une classe interne, il vous suffit d'écrire une classe dans une classe. Une classe interne peut être privée et ne peut pas être accessible à partir d'un objet en dehors de la classe. Voici un programme pour créer une classe interne. Dans cet exemple, la classe interne est rendue privée et accède à la classe via une méthode.

class Outer_Test {int num // classe interne classe privée Inner_Test {public void print () {System.out.println ('Ceci est une classe interne')}} // Accès à la classe interne à partir de la méthode void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} classe publique My_class {public static void main (String args []) {// Instanciation de la classe externe Outer_Test external = new Outer_Test () // Accès à la méthode display_Inner () . external.display_Inner ()}}

Production
Classe imbriquée intérieure - Edureka

Classe interne locale de méthode

En Java, une classe peut être écrite dans un et c'est un type local. Semblable aux variables locales, la portée d'une classe interne est restreinte dans la méthode. Une classe interne locale de méthode est incorporée uniquement dans la méthode où la classe interne est définie. Le programme ci-dessous montre comment utiliser une classe interne locale à la méthode.



public class Outerclass {// méthode d'instance de la classe externe void my_Method () {int num = 1001 // classe de classe interne locale de méthode StarInner_Test {public void print () {System.out.println ('This is star inner class' ' + num)}} // fin de la classe interne // Accès à la classe interne StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass external = new Outerclass () external. my_Method ()}}

Production

Classe intérieure anonyme

La classe interne anonyme est une classe interne déclarée sans nom de classe. Dans une classe interne anonyme, nous la déclarons et l'instancions en même temps. Ils sont généralement utilisés lorsque vous devez remplacer la méthode d'une classe ou d'une interface. Le programme ci-dessous montre comment utiliser une classe interne anonyme -

classe abstraite AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest inner = new AnonymousInnerTest () {public void mytest () {System.out.println ('Ceci est un exemple de classe de test interne anonyme ')}} inner.mytest ()}}

Production-

Classe imbriquée statique: À est une classe imbriquée qui est un membre statique de la classe externe. Contrairement à la classe interne, la classe imbriquée statique ne peut pas accéder aux variables membres de la classe externe car la classe imbriquée statique ne nécessite pas d'instance de la classe externe. Par conséquent, il n'y a aucune référence à la classe externe avec OuterClass.this. La syntaxe d'une classe imbriquée statique est -

class MyOuter {classe statique Nested_Test {}}

Exemple de classe imbriquée statique

public class Outer {classe statique Nested_Test {public void my_method () {System.out.println ('Ceci est la classe de test imbriquée d'Edureka')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () nested.my_method ()}}

Production

instructions de flux de contrôle en java

Différence entre les classes imbriquées statiques et non statiques

Les classes imbriquées statiques n'ont pas accès directement aux autres membres de la classe englobante. Étant statique, il doit accéder aux membres non statiques de sa classe englobante via un objet, ce qui signifie qu'il ne peut pas faire référence directement aux membres non statiques de sa classe englobante. Et en raison de cette restriction, les classes imbriquées statiques sont rarement utilisées.

Les classes imbriquées non statiques ont accès à tous les membres de sa classe externe et peuvent s'y référer directement de la même manière que les autres membres non statiques de la classe externe.

Avant d'arriver à la fin de cet article, examinons quelques points clés.

Points clés à retenir

  • La classe interne est traitée comme un membre régulier d'une classe.
  • Étant donné que la classe interne est membre de la classe externe, vous pouvez appliquer différents modificateurs d'accès tels que protected, private à votre classe interne.
  • Étant donné que la classe Nested est membre de sa classe englobante, vous pouvez utiliser. (point) pour accéder à la classe imbriquée et à ses membres.
  • L'utilisation d'une classe imbriquée rend votre code plus lisible et offre une meilleure encapsulation .
  • La classe interne a accès aux autres membres de la classe externe, même s'ils sont déclarés privés.

Avec cela, nous arrivons à la fin de ce blog sur les classes imbriquées en Java. Si vous souhaitez en savoir plus sur Java, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog «Classe imbriquée en Java» et nous vous répondrons dans les plus brefs délais.