logo

Јава Анонимоус унутрашња класа

Јава анонимна унутрашња класа је унутрашња класа без имена и за коју се креира само један објекат. Анонимна унутрашња класа може бити корисна када се прави инстанца објекта са одређеним 'додатцима' као што су методе преоптерећења класе или интерфејса, без потребе да се заправо подкласира класа.

Једноставним речима, класа која нема име је позната као анонимна унутрашња класа у Јави. Требало би да се користи ако морате да заобиђете метод класе или интерфејса. Јава Анонимоус унутрашња класа може се креирати на два начина:

  1. Класа (може бити апстрактна или конкретна).
  2. Интерфејс

Пример Јава анонимне унутрашње класе користећи класу

ТестАнонимоусИннер.јава

 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(); } } 
Тестирајте одмах

Излаз:

 nice fruits 

Интерни рад датог кода

 Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; 
  1. Класа је креирана, али њено име одређује компајлер, који проширује класу Персон и обезбеђује имплементацију методе еат().
  2. Креиран је објекат класе Анонимоус на који упућује 'п', референтна променљива типа Персон.

Интерна класа коју генерише компајлер

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

Пример Јава анонимне унутрашње класе који користи интерфејс

 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(); } } 
Тестирајте одмах

Излаз:

понављање листе у Јави
 nice fruits 

Интерни рад датог кода

Он обавља два главна задатка иза овог кода:

 Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} }; 
  1. Класа је креирана, али њено име одређује компајлер, који имплементира интерфејс Еатабле и обезбеђује имплементацију методе еат().
  2. Креиран је објекат класе Анонимоус на који упућује 'п', референтна променљива типа Еатабле.

Интерна класа коју генерише компајлер

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