logo

Classe interne Java Anonyme

La classe interne anonyme Java est une classe interne sans nom et pour laquelle un seul objet est créé. Une classe interne anonyme peut être utile lors de la création d'une instance d'un objet avec certains « extras » tels que la surcharge des méthodes d'une classe ou d'une interface, sans avoir à sous-classer une classe.

En termes simples, une classe qui n’a pas de nom est appelée classe interne anonyme en Java. Il doit être utilisé si vous devez remplacer une méthode de classe ou d'interface. La classe interne Java Anonyme peut être créée de deux manières :

  1. Cours (peut être abstrait ou concret).
  2. Interface

Exemple de classe interne anonyme Java utilisant la classe

TestAnonymousInner.java

 abstract class Person{ abstract void eat(); } class TestAnonymousInner{ public static void main(String args[]){ Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; p.eat(); } } 
Testez-le maintenant

Sortir:

 nice fruits 

Fonctionnement interne d'un code donné

 Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; 
  1. Une classe est créée, mais son nom est décidé par le compilateur, qui étend la classe Person et fournit l'implémentation de la méthode eat().
  2. Un objet de la classe Anonyme est créé et référencé par « p », une variable de référence de type Personne.

Classe interne générée par le compilateur

 import java.io.PrintStream; static class TestAnonymousInner$1 extends Person { TestAnonymousInner$1(){} void eat() { System.out.println('nice fruits'); } } 

Exemple de classe interne anonyme Java utilisant l'interface

 interface Eatable{ void eat(); } class TestAnnonymousInner1{ public static void main(String args[]){ Eatable e=new Eatable(){ public void eat(){System.out.println('nice fruits');} }; e.eat(); } } 
Testez-le maintenant

Sortir:

 nice fruits 

Fonctionnement interne d'un code donné

Il effectue deux tâches principales derrière ce code :

 Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} }; 
  1. Une classe est créée, mais son nom est décidé par le compilateur, qui implémente l'interface Eatable et fournit l'implémentation de la méthode eat().
  2. Un objet de la classe Anonyme est créé et référencé par 'p', une variable de référence de type Eatable.

Classe interne générée par le compilateur

 import java.io.PrintStream; static class TestAnonymousInner1$1 implements Eatable { TestAnonymousInner1$1(){} void eat(){System.out.println('nice fruits');} }