Comment implémenter Inner Class en Java?



La classe interne en java signifie une classe unique qui est membre d'une autre classe. Cet article vous aidera à démêler cette classe.

La classe interne en java signifie une classe unique qui est membre d'une autre classe. Dans , il existe différents types de classes internes. Cet article vous aidera à démêler toutes ces classes. Les pointeurs suivants seront discutés en détail,

Alors commençons avec cet article Inner Class In Java,





Classe intérieure en Java

Classe intérieure imbriquée

Cette classe a accès à toute valeur d'instance privée de la classe externe. L'écriture d'une classe dans une autre classe est également autorisée en Java. La classe écrite à l'intérieur est une classe imbriquée connue et la classe qui contient la classe interne est appelée classe externe.



Syntaxe

classe externe {classe interne {}}

Exemple

classe python __init__

Dans l'exemple ci-dessous, nous rendons la classe interne privée et accédons à la classe à l'aide de method.



class Outer_place {int num private class Inner_place {public void print () {System.out.println ('C'est une classe interne')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} classe publique My_class {public static void main (String args []) {Outer_place external = new Outer_place () external.display_Inner ()}}

Production

Sortie - Classe interne en Java - Edureka

Ici, le lieu externe est la classe externe et le lieu interne est appelé la classe interne.

Poursuivant cet article sur Inner Class In Java,

Accès aux membres privés

Les classes internes sont également utilisées pour accéder aux membres privés de la classe. Supposons qu'il existe une classe ayant des membres privés pour y accéder. Maintenant, écrivez une classe interne dans la classe et accédez aux membres privés à partir d'une méthode dans la classe interne.

Voici l'exemple,

class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('C'est une méthode getnum de classe interne:') return num}}} classe publique Ma_classe {public static void main (String args []) {Outer_place external = new Outer_place () Outer_place.Inner_place inner = external.new Inner_place () System.out.println (inner.getNum ())}}

Production

Passer à autre chose,

Méthode des classes internes locales

En Java, vous pouvez écrire une classe dans la méthode et qui sera appelée type local. Comme toutes les variables locales, la portée de la classe interne est restreinte au sein d'une méthode.

Exemple

L'exemple suivant montre comment une méthode de classe interne locale est implémentée.

public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('méthode pour les classes internes' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} public static void main (String args []) {Outerplace external = new Outerplace () external.my_Method ()}}

Production

Poursuivant cet article sur Inner Class In Java,

Classe intérieure anonyme

Toute classe interne déclarée sans le nom de classe est appelée classe interne anonyme. Dans le cas des classes internes anonymes, nous l'instancions et la déclarons en même temps.

def __init __ (soi):

Chaque fois que nous voulons remplacer la méthode de la classe ou une interface, nous utilisons cette classe.

Syntaxe

AnonymousInner obj1 = new AnonymousInner () {méthode publique void () {}}

Exemple

classe abstraite AnonymousInner {public abstract void mymethod ()} public class Outer_class {public static void main (String args []) {AnonymousInner inner = new AnonymousInner () {public void mymethod () {System.out.println ('example of anonymous classe interne ')}} inner.mymethod ()}}

Production

Poursuivant cet article sur Inner Class In Java,

En tant qu'argument de la classe intérieure anonyme

En cela, si une méthode accepte l'objet de l'interface, d'une classe abstraite ou de la classe concrète, alors nous pouvons implémenter l'interface, passer l'objet à la méthode et étendre la classe abstraite.

Syntaxe

obj. méthode (nouvelle classe () {public void do {}})

Exemple

// interface interface Message {String greet ()} public class My_class {// objet de l'interface message est accepté par cette méthode public void displayMessage (Message m) {System.out.println (m.greet () + ', example of classe interne anonyme en argument ')} public static void main (String args []) {// Instanciation de la classe My_class obj = new My_class () // Passage de la classe interne anonyme en argument obj.displayMessage (new Message () {public String greet () {return 'Hey'}})}}

Production

Poursuivant cet article sur Inner Class In Java,

Classe interne anonyme d'une sous-classe spécifiée

Code source

class Demo {void show () {System.out.println ('j'étais dans la méthode show de la classe')}} classe Flavor1Demo {static Demo d = new Demo () {void show () {super.show () System. out.println ('j'étais présent dans la classe Flavor1Demo')}} public static void main (String [] args) {d.show ()}}

Production

saltstack vs marionnette vs chef

Poursuivant cet article sur Inner Class In Java,

Classe interne anonyme en tant qu'implémenteur de Specified Interface

Code source

class Flavor2Demo {// classe qui implémente l'interface Hello statique Hello h = new Hello () {public void show () {System.out.println ('j'étais présent dans une classe anonyme')}} public static void main (String [] args) {h.show ()}} interface Bonjour {void show ()}

Production

Poursuivant cet article sur Inner Class In Java,

Classes imbriquées statiques

Ces classes ne sont pas techniquement appelées classes internes. Ces classes sont similaires au membre statique de la classe externe. Une classe imbriquée statique n'a aucun accès aux variables et méthodes de la classe externe. Nous n'avons pas besoin d'instancier la classe externe, elle est accessible directement en utilisant les membres statiques.

Syntaxe

Classe externe {Classe statique nested_example {}}

Exemple

public class Outer {classe statique Nested_Example {public void my_method () {System.out.println ('C'est la classe imbriquée')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () nested.my_method ()}}

Production

Nous sommes donc arrivés à la fin de cet article. Si vous souhaitez en savoir plus,Vérifiez par Edureka, une entreprise d'apprentissage en ligne de confiance. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour 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 cet article et nous vous répondrons dans les plus brefs délais.