La classe interne anonyme en Java est une classe interne ou une classe imbriquée. Une classe interne est une classe présente à l’intérieur d’une classe externe. Une classe interne anonyme est donc une classe interne qui n’a pas de nom. Il s'agit soit d'une sous-classe d'une classe, soit d'une implémentation d'une interface. Ainsi, si nous devons remplacer une classe ou une méthode d’interface, nous pouvons utiliser une classe interne anonyme. Dans le cas de la classe interne anonyme, une accolade est suivie du point-virgule.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Il existe deux façons de créer une classe interne anonyme.
Syntaxe :
Vous trouverez ci-dessous la syntaxe, où la classe peut être une classe abstraite ou une classe ou une interface concrète.
class t = new class() { // class variables and methods members public void class_method() { /* some code of the class_method */ } };
Vous trouverez ci-dessous les exemples mentionnés :
Un exemple où nous créons une interface et une classe simple qui implémente cette interface.
Code :
package p1; interface Emp { int eid = 2101; void geteid(); } // Implclass implement an Emp Interface and provide the defination for geteid() method class ImplClass implements Emp { @Override public void geteid() { // display the eid System.out.print("Employee id is "+eid); } } class Demo { public static void main( String[] arg ) { // create object of Implclass which implements Emp interface ImplClass ob=new ImplClass(); // call geteid() method which implemented by Implclass ob.geteid(); } }
Sortie :
Comme dans le code ci-dessus, une interface Emp est créée avec la méthode geteid() et eid=2101. ImplClass implémente une interface Emp et fournit la définition de la méthode geteid(). Il n’est pas nécessaire d’écrire une classe ImplClass distincte ; au lieu de cela, il peut être utilisé comme classe interne anonyme.
Ici, nous réécrivons le code Java ci-dessus pour voir une classe interne fonctionner. La classe ImplClass est accessible aux autres classes de l'application. Cependant, la fonctionnalité de la classe ImplClass n’est pas requise par l’autre classe de l’application. Nous n’avons donc pas besoin de définir une classe externe. De plus, une instance de cette classe n’est utilisée qu’une seule fois. Par conséquent, avec l’aide d’une classe interne anonyme, les fonctionnalités de la classe ImplClass peuvent être implémentées. Dans l'exemple ci-dessous, nous avons créé l'objet de la classe directement en implémentant Empinterfece.
Code :
package p1; interface Emp { int eid = 2101; void geteid(); } class Demo { public static void main( String[] arg ) { // Implclass is hidden inner class implement an Emp Interface // Implclass class name is not created but an object is creating below Emp ob = new Emp() { @Override public void geteid() { // display the eid System.out.print("Employee id is "+eid); } }; // call geteid() method which implemented by Implclass ob.geteid(); } }
Sortie :
Comme dans le code ci-dessus, un objet de Emp n'est pas créé ; implicitement, un objet de la classe ImplClass (peut ne pas avoir le même nom) est créé. Notez que la classe interne n'a pas de nom, donc le compilateur décide d'un nom et le crée, en implémentant l'interface Emp.
Code Java pour créer une classe interne anonyme qui étend une classe.
Code :
package p1; class Emp { void dispMesg() { System.out.println("This message is from main class"); } } class Demo { public static void main( String[] arg ) { // Anonymous hidden inner class extends an Emp class // Anonymous class name is not created but an object is creating below Emp ob = new Emp() { @Override // override dispMesg() method in child Anonymous inner class public void dispMesg() { System.out.print("This message is from child class"); } }; // call geteid() method which implemented by Implclass ob.dispMesg(); } }
Sortie :
Code Java pour créer une classe interne anonyme qui étend une classe abstraite.
Code :
package p1; abstract class Emp { void dispMesg() { System.out.println("This message is from main class"); } abstract void abstrct_method(); } class Demo { public static void main( String[] arg ) { // Anonymous hidden inner class extends an Emp abstract class // Anonymous class name is not created but an object is creating below Emp ob = new Emp() { @Override public void dispMesg() { System.out.println("This message is from child class"); } @Override void abstrct_method() { System.out.println("Abstract Method"); } }; ob.dispMesg(); ob.abstrct_method(); } }
Sortie :
Code Java pour créer une classe interne anonyme qui définit un constructeur interne ou un argument de méthode où nous utiliserons la classe Thread prédéfinie et l'interface exécutable pour créer et exécuter un thread.
Code :
package p1; class Demo { public static void main( String[] arg ) { // Anonymous hidden inner class extends an Emp class // Anonymous class define constructor argument Thread obt = new Thread(new Runnable() { @Override public void run() { System.out.println("Runing child Thread."); } }); System.out.println("Runing main Thread."); obt.start(); System.out.println("Runing main Thread."); } }
Sortie :
Une classe interne anonyme est une classe interne qui n'a pas de nom de classe. Il existe différentes manières de créer une classe interne anonyme, comme étendre la classe concrète, étendre la classe abstraite et implémenter une interface.
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!