Comment implémenter une classe anonyme en Java



Ce blog vous fournira une connaissance détaillée et complète de la classe anonyme en Java avec des exemples et en quoi elle diffère d'une classe régulière.

Les classes anonymes vous permettent d'écrire du petit code et vous permettent de déclarer et d'instancier une classe en même temps. Ces classes n'ont pas de noms, elles sont utilisées lorsque vous ne souhaitez utiliser une classe qu'une seule fois. C'est un aspect important de la programmation Java. Voyons ce qu'est une classe anonyme en Java dans l'ordre suivant:

Déclaration des classes anonymes





Normalement, nous créons une classe, c'est-à-dire que nous déclarons une classe, mais les classes anonymes sont des expressions ce qui signifie que nous définissons la classe anonyme dans une autre expression . En termes simples, la classe interne anonyme est une classe sans nom et un seul objet est créé.

Anonymous-Class-In-Java



La classe anonyme est utile lorsque nous devons créer une instance de l'objet avec des méthodes de surcharge d'une classe ou d'une interface sans créer une sous-classe de classe.

Anonymous peut être créé de deux manières:

  • Classe (peut également être abstraite)
  • Interface

Dans la classe anonyme, nous pouvons déclarer ce qui suit:



  • Des champs
  • Méthodes supplémentaires
  • Initialiseurs d'instance
  • Cours locaux

Syntaxe de la classe anonyme en Java

La syntaxe d'une classe anonyme est identique à celle d'un constructeur, sauf qu'il existe une définition de classe dans le bloc, comme indiqué dans l'extrait ci-dessous:

comment faire un dictionnaire en java
// AnonymousClass = interface, classe abstraite / concrète. AnonymousClass t = new AnonymousClass () {// méthodes et champs public void someMethod () {// le code va ici}}

Jetons un œil à l'exemple suivant:

L'exemple suivant,BonjourAnonymousClass, utilise des classes anonymes dans les instructions d'initialisation des variables localessaluer quelqu'unmais utilise une classe locale pour l'initialisation de la variablesaluer le monde:

public class HelloAnonymousClass {interface HelloWorld {public void sayHello () public void sayHelloTo (String quelqu'un)} public void sayHello () {class GreetWorld implémente HelloWorld {String name = 'world' public void sayHello () {sayHelloTo ('world')} public void sayHelloTo (String quelqu'un) {name = quelqu'un System.out.println ('Hello' + name)}} HelloWorld greetWorld = new GreetWorld () HelloWorld greetSomeone = new HelloWorld () {String name = 'jon' public void sayHello ( ) {sayHelloTo ('Jon')} public void sayHelloTo (String quelqu'un) {nom = quelqu'un System.out.println ('hola' + nom)}} greetWorld.sayHello () greetSomeone.sayHelloTo ('Doe')} public static void main (String ... args) {HelloAnonymousClass myApp = new HelloAnonymousClass () myApp.sayHello ()}}

Comme nous l'avons vu, la classe anonyme est une expression, la syntaxe est comme le constructeur sauf qu'il y a une définition de classe dans le bloc. Considérez l'instanciation de l'objet greetSomeone:

HelloWorld greetSomeone = new HelloWorld () {String name = 'jon' public void sayHello () {sayHelloTo ('Jon')} public void sayHelloTo (String quelqu'un) {name = quelqu'un System.out.println ('hola' + name) }}

La classe anonyme est composée des éléments suivants:

  • nouvel opérateur.
  • Il peut implémenter une interface ou étendre une classe. Comme dans l'exemple ci-dessus, il met en œuvre l'interface.
  • Il contient des parenthèses comme les classes normales afin de passer des arguments au constructeur.
  • Contient le corps qui contient les déclarations de méthode. Les déclarations ne sont pas autorisées.

La classe anonyme doit faire partie des déclarations.

aller en c ++

Dans l'exemple ci-dessus, l'expression de classe anonyme fait partie de l'instruction qui est initiée parsaluer quelqu'un.

Façons de créer une classe anonyme en Java

Il existe 3 façons de créer une classe intérieure en Java

  • En prolongeant la classe

Nous pouvons créer une classe interne anonyme en étendant une autre classe, supposons que nous devions créer un thread en utilisant la classe Thread, nous pouvons créer une classe interne anonyme au lieu de créer une classe séparée.

// Programme pour illustrer la classe Anonymous Inner en étendant une autre classe de classe AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class qui étend la classe Thread Thread t = new Thread () {public void run () {System .out.println ('Enfant!')}} t.start () System.out.println ('Parent!')}}

Production:

Parent!

Enfant!

  • En implémentant l'interface

Nous pouvons également créer une classe interne anonyme en implémentant l'interface. Maintenant, comme nous avons créé une classe interne en étendant la classe de la même manière, nous pouvons créer une classe qui implémente une interface.

// Programme pour illustrer la classe Anonymous Inner en implémentant la classe d'interface AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class qui implémente l'interface Runnable r = new Runnable () {public void run () {System.out .println ('Enfant!')}} Thread t = new Thread (r) t.start () System.out.println ('Parent!')}}

Production:

Parent!

Enfant!

  • En tant qu'argument pour une méthode / un constructeur

Pour comprendre la syntaxe, regardons l'exemple ci-dessous:

// Programme pour illustrer la classe Anonymous Inner par la classe d'argument AnonymousThreadClass {public static void main (String [] args) {// Classe anonyme avec l'argument constructeur Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Enfant!')}}) t.start () System.out.println ('Parent!')}}

Production:

Parent!

Enfant!

Différence entre la classe intérieure régulière et anonyme

  • Nous pouvons mettre en œuvre plusieurs nombres d'interfaces en utilisant une classe normale mais, avec une classe interne anonyme, nous ne pouvons implémenter qu'une seule interface.

  • Avec des cours réguliers, nous pouvons étendre une classe et implémenter également plusieurs interfaces mais, avec une classe interne anonyme, nous pouvons soit étendre une classe, soit implémenter une interface, mais pas les deux en même temps.

  • Avec anonyme nous impossible d'écrire le constructeur car la classe interne anonyme n'a pas le nom et le nom du constructeur doit être identique au nom de la classe.

Dans cet article, nous avons vu ce qu'est une classe interne anonyme et comment en créer une. nous sommes passés par la syntaxe de la classe interne anonyme et aussi comment nous pouvons créer une classe anonyme de 3 manières et avec cela, nous arrivons à la fin de cet article sur la classe anonyme en Java. Vérifiez par Edureka.

Tu as une question? Mentionnez-le dans la section commentaire de cet article et nous vous répondrons dans les plus brefs délais.

is-a and has-a relation en java