logo

Java Anonym inre klass

Java anonym innerklass är en inre klass utan namn och för vilken endast ett enda objekt skapas. En anonym inre klass kan vara användbar när man gör en instans av ett objekt med vissa 'extramaterial' såsom överbelastningsmetoder för en klass eller gränssnitt, utan att faktiskt behöva underklassa en klass.

Med enkla ord är en klass som inte har något namn känd som en anonym inre klass i Java. Den bör användas om du måste åsidosätta en metod för klass eller gränssnitt. Java Anonymous inre klass kan skapas på två sätt:

  1. Klass (kan vara abstrakt eller konkret).
  2. Gränssnitt

Java anonymt inre klassexempel med klass

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(); } } 
Testa det nu

Produktion:

 nice fruits 

Intern bearbetning av given kod

 Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; 
  1. En klass skapas, men dess namn bestäms av kompilatorn, som utökar klassen Person och tillhandahåller implementeringen av metoden eat().
  2. Ett objekt av klassen Anonym skapas som refereras till med 'p', en referensvariabel av typen Person.

Intern klass genererad av kompilatorn

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

Java anonymt inre klassexempel med gränssnitt

 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(); } } 
Testa det nu

Produktion:

java jämförbar
 nice fruits 

Intern bearbetning av given kod

Den utför två huvuduppgifter bakom denna kod:

 Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} }; 
  1. En klass skapas, men dess namn bestäms av kompilatorn, som implementerar Eatable-gränssnittet och tillhandahåller implementeringen av eat()-metoden.
  2. Ett objekt av klassen Anonym skapas som refereras till med 'p', en referensvariabel av typen Eatable.

Intern klass genererad av kompilatorn

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