Java anonīmā iekšējā klase ir iekšējā klase bez nosaukuma un kurai tiek izveidots tikai viens objekts. Anonīma iekšējā klase var būt noderīga, veidojot objekta eksemplāru ar noteiktām “papildām”, piemēram, klases vai interfeisa pārslodzes metodēm, faktiski neievietojot klasi.
Vienkāršiem vārdiem sakot, klase, kurai nav nosaukuma, ir pazīstama kā anonīma Java iekšējā klase. Tas ir jāizmanto, ja ir jāignorē klases vai saskarnes metode. Java Anonymous iekšējo klasi var izveidot divos veidos:
- Klase (var būt abstrakta vai konkrēta).
- Interfeiss
Java anonīms iekšējās klases piemērs, izmantojot klasi
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(); } }Izmēģiniet to tūlīt
Izvade:
nice fruits
Dotā koda iekšējā darbība
Person p=new Person(){ void eat(){System.out.println('nice fruits');} };
- Tiek izveidota klase, bet tās nosaukumu izlemj kompilators, kas paplašina Personas klasi un nodrošina eat() metodes ieviešanu.
- Tiek izveidots Anonymous klases objekts, uz kuru attiecas “p”, Personas tipa atsauces mainīgais.
Iekšējā klase, ko ģenerē kompilators
import java.io.PrintStream; static class TestAnonymousInner$1 extends Person { TestAnonymousInner$1(){} void eat() { System.out.println('nice fruits'); } }
Java anonīms iekšējās klases piemērs, izmantojot interfeisu
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(); } }Izmēģiniet to tūlīt
Izvade:
nice fruits
Dotā koda iekšējā darbība
Tas veic divus galvenos uzdevumus aiz šī koda:
Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} };
- Tiek izveidota klase, bet tās nosaukumu izlemj kompilators, kas ievieš Eatable saskarni un nodrošina eat() metodes ieviešanu.
- Tiek izveidots Anonymous klases objekts, uz kuru norāda 'p', kas ir Eatable tipa atsauces mainīgais.
Iekšējā klase, ko ģenerē kompilators
import java.io.PrintStream; static class TestAnonymousInner1$1 implements Eatable { TestAnonymousInner1$1(){} void eat(){System.out.println('nice fruits');} }