logo

Clasa interioară Java Anonymous

Clasa interioară anonimă Java este o clasă interioară fără nume și pentru care este creat un singur obiect. O clasă interioară anonimă poate fi utilă atunci când se realizează o instanță a unui obiect cu anumite „suplimente”, cum ar fi metodele de supraîncărcare a unei clase sau interfețe, fără a fi nevoie să subclaseze o clasă.

Cu cuvinte simple, o clasă care nu are nume este cunoscută ca o clasă interioară anonimă în Java. Ar trebui să fie folosit dacă trebuie să suprascrieți o metodă de clasă sau interfață. Clasa interioară Java Anonymous poate fi creată în două moduri:

  1. Clasa (poate fi abstractă sau concretă).
  2. Interfață

Exemplu de clasă interioară anonimă Java folosind clasa

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(); } } 
Testează-l acum

Ieșire:

 nice fruits 

Funcționarea internă a codului dat

 Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; 
  1. Se creează o clasă, dar numele ei este decis de compilator, care extinde clasa Person și asigură implementarea metodei eat().
  2. Este creat un obiect din clasa Anonymous la care se face referire prin „p”, o variabilă de referință de tip Person.

Clasa internă generată de compilator

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

Exemplu de clasă interioară anonimă Java folosind interfața

 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(); } } 
Testează-l acum

Ieșire:

 nice fruits 

Funcționarea internă a codului dat

Îndeplinește două sarcini principale în spatele acestui cod:

 Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} }; 
  1. Se creează o clasă, dar numele ei este decis de compilator, care implementează interfața Eatable și asigură implementarea metodei eat().
  2. Este creat un obiect din clasa Anonymous la care se face referire prin „p”, o variabilă de referință de tip Eatable.

Clasa internă generată de compilator

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