Come implementare la classe anonima in Java

Questo blog ti fornirà una conoscenza dettagliata e completa della classe anonima in Java con esempi e come si differenzia da una classe normale.

Le classi anonime ti consentono di scrivere codice di piccole dimensioni e ti consentono di dichiarare e istanziare la classe allo stesso tempo. Queste classi non hanno nomi, vengono utilizzate quando si desidera utilizzare una classe solo una volta. È un aspetto importante della programmazione Java. Comprendiamo cos'è la classe anonima in Java nel seguente ordine:

Dichiarazione di classi anonime



Normalmente creiamo una classe, ovvero dichiariamo una classe, ma le classi anonime sono espressioni, il che significa che definiamo la classe anonima in un'altra espressione . In parole semplici, la classe interna anonima è una classe senza nomi e viene creato un solo oggetto.

Anonymous-Class-In-Java

La classe anonima è utile quando dobbiamo creare un'istanza dell'oggetto con metodi di sovraccarico di una classe o interfaccia senza creare una sottoclasse di classe.

Anonymous può essere creato in due modi:

  • Class (può anche essere Abstract)
  • Interfaccia

Nella classe anonima possiamo dichiarare quanto segue:

  • Campi
  • Metodi extra
  • Inizializzatori di istanze
  • Classi locali

Sintassi della classe anonima in Java

La sintassi di una classe anonima è proprio come il costruttore tranne per il fatto che c'è una definizione di classe nel blocco come mostrato nello snippet di seguito:

// AnonymousClass = interfaccia, classe astratta / concreta. AnonymousClass t = new AnonymousClass () {// metodi e campi public void someMethod () {// code goes here}}

Diamo un'occhiata al seguente esempio:

java cos'è un token

Il seguente esempio,HelloAnonymousClass, utilizza classi anonime nelle istruzioni di inizializzazione delle variabili localisalutare qualcunoma utilizza una classe locale per l'inizializzazione della variabileGreetWorld:

public class HelloAnonymousClass {interfaccia HelloWorld {public void sayHello () public void sayHelloTo (String qualcuno)} public void sayHello () {class GreetWorld implementa HelloWorld {String name = 'world' public void sayHello () {sayHelloTo ('world')} public void sayHelloTo (String someone) {name = someone 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 qualcuno) {name = someone System.out.println ('hola' + name)}} greetWorld.sayHello () greetSomeone.sayHelloTo ('Doe')} public static void main (String ... args) {HelloAnonymousClass myApp = new HelloAnonymousClass () myApp.sayHello ()}}

Come abbiamo visto che la classe anonima è un'espressione, la sintassi è proprio come il costruttore tranne che per la definizione di una classe nel blocco. Considera la creazione di istanze dell'oggetto greetSomeone:

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

La classe anonima è composta da quanto segue:

  • nuovo operatore.
  • Può implementare un'interfaccia o estendere una classe. Come nell'esempio sopra, sta implementando l'interfaccia.
  • Contiene parentesi proprio come le normali classi per passare argomenti al costruttore.
  • Contiene il corpo che contiene le dichiarazioni di metodo. Non sono ammesse dichiarazioni.

La classe anonima dovrebbe far parte delle dichiarazioni.

Nell'esempio precedente, l'espressione di classe anonima fa parte dell'istruzione avviata dasalutare qualcuno.

come usare goto in python

Modi per creare classi anonime in Java

Esistono 3 modi per creare Inner Class in Java

  • Estendendo Class

Possiamo creare una classe interna anonima estendendo un'altra classe, supponiamo di dover creare un thread utilizzando la classe Thread, possiamo creare una classe interna anonima invece di creare una classe separata.

// Programma per illustrare la classe interna anonima estendendo un'altra classe di classe AnonymousThreadClass {public static void main (String [] args) {// Classe interna anonima che estende la classe Thread Thread t = new Thread () {public void run () {System .out.println ('Child!')}} t.start () System.out.println ('Parent!')}}

Produzione:

Genitore!

Bambino!

  • Implementando l'interfaccia

Possiamo anche creare una classe interna anonima implementando l'interfaccia. Ora, poiché abbiamo creato una classe interna estendendo la classe in modo simile, possiamo creare una classe che implementa un'interfaccia.

// Programma per illustrare la classe interna anonima implementando la classe di interfaccia AnonymousThreadClass {public static void main (String [] args) {// Classe interna anonima che implementa l'interfaccia Runnable r = new Runnable () {public void run () {System.out .println ('Child!')}} Thread t = new Thread (r) t.start () System.out.println ('Parent!')}}

Produzione:

Genitore!

Bambino!

  • Come argomento per un metodo / costruttore

Per capire la sintassi, guardiamo l'esempio seguente:

// Programma per illustrare la classe interna anonima per argomento classe AnonymousThreadClass {public static void main (String [] args) {// Classe anonima con argomento del costruttore Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Child!')}}) t.start () System.out.println ('Parent!')}}

Produzione:

come inizializzare un oggetto in python

Genitore!

Bambino!

Differenza tra classe interna regolare e anonima

  • Possiamo implementare più numeri di interfacce utilizzando una classe normale ma, con una classe interna anonima, possiamo implementare solo un'interfaccia.

  • Con una lezione regolare possiamo estendere una classe e implementiamo anche più interfacce ma, con una classe interna anonima, possiamo estendere una classe o implementare un'interfaccia ma non entrambe allo stesso tempo.

  • Con anonimo we non può scrivere il costruttore poiché la classe interna anonima non ha nome e il nome del costruttore dovrebbe essere lo stesso del nome della classe.

In questo articolo, abbiamo visto cos'è una classe interna anonima e come possiamo crearne una. abbiamo esaminato la sintassi della classe interna anonima e anche come possiamo creare una classe anonima in 3 modi e con questo, arriviamo alla fine di questo articolo sulla Classe anonima in Java. Controlla il di Edureka.

Hai una domanda? Menzionalo nella sezione commenti di questo articolo e ti risponderemo il prima possibile.