Com implementar una classe anònima a Java

Aquest bloc us proporcionarà un coneixement detallat i exhaustiu de la classe anònima a Java amb exemples i com es diferencia d'una classe normal.

Les classes anònimes us permeten escriure un petit codi i us permeten declarar i instanciar la classe alhora. Aquestes classes no tenen noms, s’utilitzen quan es vol utilitzar qualsevol classe només una vegada. És un aspecte important de la programació Java. Comprenguem què és Anonymous Class a Java en l’ordre següent:



Declaració de classes anònimes



Normalment creem una classe, és a dir, declarem classe, però les classes anònimes són expressions que vol dir que definim la classe anònima en una altra expressió . En paraules simples, la classe interior anònima és una classe sense noms i només es crea un objecte.

Anonymous-Class-In-Java



La classe anònima és útil quan hem de crear una instància de l'objecte amb mètodes de sobrecàrrega d'una classe o interfície sense crear una subclassa de classe.

Anonymous es pot crear de dues maneres:

  • Classe (també pot ser resum)
  • Interfície

A la classe anònima podem declarar el següent:



  • Camps
  • Mètodes addicionals
  • Inicialitzadors d’instància
  • Classes locals

Sintaxi de la classe anònima a Java

La sintaxi d'una classe anònima és igual que el constructor, tret que hi ha una definició de classe al bloc tal com es mostra al fragment següent:

// AnonymousClass = interfície, classe abstracta / concreta. AnonymousClass t = new AnonymousClass () {// mètodes i camps public void someMethod () {// el codi va aquí}}

Vegem l’exemple següent:

L'exemple següent,HelloAnonymousClass, utilitza classes anònimes a les declaracions d'inicialització de les variables localssaludar algúperò utilitza una classe local per a la inicialització de la variablegreetWorld:

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

Com hem vist que la classe anònima és una expressió, la sintaxi és igual que el constructor, tret que hi hagi una definició de classe al bloc. Penseu en la instància de l'objecte greetSomeone:

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

La classe anònima es compon del següent:

  • nou operador.
  • Pot implementar una interfície o ampliar una classe. Com a l'exemple anterior, està implementant la interfície.
  • Conté parèntesis igual que les classes normals per passar arguments al constructor.
  • Conté un cos que conté declaracions de mètodes. No s’admeten declaracions.

La classe anònima hauria de formar part de les declaracions.

A l'exemple anterior, l'expressió de classe anònima forma part de la declaració iniciada persaludar algú.

Maneres de crear classes anònimes a Java

Hi ha 3 maneres de crear Inner Class a Java

  • Ampliant la classe

Podem crear una classe interna anònima ampliant una altra classe, suposem que hem de crear un fil mitjançant la classe Thread, podem crear una classe interna anònima en lloc de crear una classe independent.

// Programa per il·lustrar Anonymous Inner class ampliant la classe AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class that extends Thread class Thread t = new Thread () {public void run () {System .out.println ('Child!')}} t.start () System.out.println ('Parent!')}}

Sortida:

Pares!

Nen!

com es crea un paquet Java
  • Mitjançant la implementació de la interfície

També podem crear una classe interna anònima implementant la interfície. Ara, a mesura que hem creat una classe interna ampliant la classe de manera similar, podem crear una classe que implementi una interfície.

// Programa per il·lustrar la classe interna Anonymous mitjançant la implementació de la classe d'interfície AnonymousThreadClass {public static void main (String [] args) {// Classe interna anònima que implementa la interfície Runnable r = new Runnable () {public void run () {System.out .println ('Child!')}} Fil t = nou fil (r) t.start () System.out.println ('Parent!')}}

Sortida:

Pares!

Nen!

  • Com a argument d'un mètode / constructor

Per entendre la sintaxi vegem l'exemple següent:

// Programa per il·lustrar la classe interna anònima per classe d'arguments AnonymousThreadClass {public static void main (String [] args) {// Classe anònima amb argument del constructor Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Child!')}}) t.start () System.out.println ('Parent!')}}

Sortida:

Pares!

Nen!

Diferència entre classe interna regular i anònima

  • Ho podem implementar múltiples interfícies mitjançant l’ús de classe normal però, amb una classe interna anònima, només podem implementar una interfície.

  • Amb classe regular podem ampliar una classe i també implementem diverses interfícies, però, amb una classe interna anònima, podem ampliar una classe o implementar una interfície, però no totes dues alhora.

  • Amb nosaltres anònims no pot escriure el constructor perquè la classe interna anònima no té nom i el nom del constructor hauria de ser el mateix que el nom de la classe.

En aquest article, hem vist què és una classe interior anònima i com podem crear-ne una. hem passat per la sintaxi de la classe interna anònima i també de com podem crear una classe anònima de 3 maneres i, amb això, arribem al final d’aquest article sobre la classe anònima a Java. Consulteu el per Edureka.

Tens alguna pregunta? Esmenta’l a la secció de comentaris d’aquest article i et respondrem el més aviat possible.