Cum se implementează clasa anonimă în Java



Acest blog vă va oferi o cunoaștere detaliată și cuprinzătoare a clasei anonime în Java, cu exemple și cum diferă de o clasă obișnuită.

Clasele anonime vă permit să scrieți un cod mic și vă permit să declarați și să instanțiați clasa în același timp. Aceste clase nu au nume, este folosită atunci când doriți să utilizați orice clasă o singură dată. Este un aspect important al programării Java. Să înțelegem ce este Anonymous Class în Java în următoarea ordine:

Declararea claselor anonime





În mod normal, creăm o clasă, adică declarăm clasă, dar clasele anonime sunt expresii, ceea ce înseamnă că definim clasa anonimă într-o altă expresie . În cuvinte simple, clasa interioară anonimă este o clasă fără nume și se creează un singur obiect.

Anonymous-Class-In-Java



Clasa anonimă este utilă atunci când trebuie să creăm o instanță a obiectului cu metode de supraîncărcare a unei clase sau a unei interfețe fără a crea o subclasă de clasă.

Anonimul poate fi creat în două moduri:

  • Clasa (poate fi și Abstract)
  • Interfață

În clasa anonimă putem declara următoarele:



  • Câmpuri
  • Metode suplimentare
  • Inițializatoare de instanță
  • Cursuri locale

Sintaxa clasei anonime în Java

Sintaxa unei clase anonime este la fel ca constructorul, cu excepția faptului că există o definiție a clasei în bloc, așa cum se arată în fragmentul de mai jos:

// AnonymousClass = interfață, clasă abstractă / concretă. AnonymousClass t = new AnonymousClass () {// metodele și câmpurile public void someMethod () {// codul merge aici}}

Să aruncăm o privire la următorul exemplu:

Următorul exemplu,HelloAnonymousClass, folosește clase anonime în instrucțiunile de inițializare ale variabilelor localea întâmpina pe cinevadar, folosește o clasă locală pentru inițializarea variabileigreetWorld:

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

După cum am văzut că clasa anonimă este o expresie, sintaxa este la fel ca și constructorul, cu excepția că există o definiție a clasei în bloc. Luați în considerare instanțierea obiectului greetSomeone:

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

Clasa anonimă este compusă din următoarele:

  • operator nou.
  • Poate implementa o interfață sau extinde o clasă. Ca și în exemplul de mai sus, implementează interfața.
  • Conține paranteze la fel ca clasele normale pentru a transmite argumente constructorului.
  • Conține corp care conține declarații de metodă. Declarațiile nu sunt permise.

Clasa anonimă ar trebui să facă parte din enunțuri.

În exemplul de mai sus, expresia de clasă anonimă face parte din declarația inițiată dea întâmpina pe cineva.

Modalități de a crea o clasă anonimă în Java

Există 3 moduri de a crea Inner Class în Java

  • Prin extinderea clasei

Putem crea o clasă interioară anonimă prin extinderea altei clase, să presupunem că trebuie să creăm un fir utilizând clasa Thread putem crea o clasă interioară anonimă în loc să creăm o clasă separată.

// Program pentru a ilustra clasa Anonymous Inner prin extinderea altei clase AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class that extends Thread class Thread t = new Thread () {public void run () {System .out.println ('Copil!')}} t.start () System.out.println ('Părinte!')}}

Ieșire:

Mamă!

Copil!

suma cifrelor unui număr în java folosind bucla for
  • Prin implementarea interfeței

De asemenea, putem crea o clasă interioară anonimă prin implementarea interfeței. Acum, pe măsură ce am creat o clasă interioară prin extinderea clasei în mod similar, putem crea o clasă care implementează o interfață.

// Program pentru a ilustra clasa Anonymous Inner prin implementarea clasei de interfață AnonymousThreadClass {public static void main (String [] args) {// Clasa Anonymous Inner care implementează interfața Runnable r = new Runnable () {public void run () {System.out .println ('Copil!')}} Fir t = nou fir (r) t.start () System.out.println ('Părinte!')}}

Ieșire:

Mamă!

Copil!

  • Ca argument pentru o metodă / constructor

Pentru a înțelege sintaxa, aruncăm o privire la exemplul de mai jos:

// Program pentru a ilustra clasa Anonymous Inner după clasa de argumente AnonymousThreadClass {public static void main (String [] args) {// Clasa anonimă cu argument constructor Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Copil!')}}) t.start () System.out.println ('Părinte!')}}

Ieșire:

Mamă!

Copil!

Diferența dintre clasa interioară obișnuită și cea anonimă

  • Putem implementa mai multe numere de interfețe folosind clasa normală, dar, cu o clasă interioară anonimă, putem implementa o singură interfață.

  • Cu clasa obișnuită putem extinde o clasă și, de asemenea, implementăm mai multe interfețe, dar, cu o clasă interioară anonimă, putem fie extinde o clasă, fie implementa o interfață, dar nu și ambele în același timp.

  • Cu noi anonimi nu poate scrie constructor deoarece clasa interioară anonimă nu are numele și numele constructorului ar trebui să fie același cu numele clasei.

În acest articol, am văzut ce este o clasă interioară anonimă și cum o putem crea. am trecut prin sintaxa clasei interioare anonime și, de asemenea, cum putem crea o clasă anonimă în 3 moduri și, cu aceasta, am ajuns la sfârșitul acestui articol Anonymous Class in Java. Verificați de Edureka.

Ai o întrebare? Menționați-l în secțiunea de comentarii a acestui articol și vă vom răspunde cât mai curând posibil.