logo

Java Anonymous iekšējā klase

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:

  1. Klase (var būt abstrakta vai konkrēta).
  2. 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');} }; 
  1. Tiek izveidota klase, bet tās nosaukumu izlemj kompilators, kas paplašina Personas klasi un nodrošina eat() metodes ieviešanu.
  2. 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');} }; 
  1. Tiek izveidota klase, bet tās nosaukumu izlemj kompilators, kas ievieš Eatable saskarni un nodrošina eat() metodes ieviešanu.
  2. 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');} }