logo

Java Anonymná vnútorná trieda

Anonymná vnútorná trieda Java je vnútorná trieda bez mena, pre ktorú je vytvorený iba jeden objekt. Anonymná vnútorná trieda môže byť užitočná pri vytváraní inštancie objektu s určitými „doplnkami“, ako sú napríklad preťaženie metód triedy alebo rozhrania, bez toho, aby ste museli triedu skutočne podtriediť.

Jednoducho povedané, trieda, ktorá nemá meno, je v Jave známa ako anonymná vnútorná trieda. Mal by sa použiť, ak musíte prepísať metódu triedy alebo rozhrania. Vnútornú triedu Java Anonymous je možné vytvoriť dvoma spôsobmi:

  1. Trieda (môže byť abstraktná alebo konkrétna).
  2. Rozhranie

Príklad anonymnej vnútornej triedy Java pomocou triedy

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(); } } 
Vyskúšajte to

Výkon:

 nice fruits 

Interné fungovanie daného kódu

 Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; 
  1. Trieda je vytvorená, ale o jej mene rozhoduje kompilátor, ktorý rozširuje triedu Person a zabezpečuje implementáciu metódy eat().
  2. Vytvorí sa objekt triedy Anonymous, na ktorý sa odkazuje 'p', referenčná premenná typu Osoba.

Interná trieda vygenerovaná kompilátorom

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

Príklad anonymnej vnútornej triedy Java pomocou rozhrania

 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(); } } 
Vyskúšajte to

Výkon:

 nice fruits 

Interné fungovanie daného kódu

Za týmto kódom vykonáva dve hlavné úlohy:

 Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} }; 
  1. Trieda je vytvorená, ale o jej mene rozhoduje kompilátor, ktorý implementuje rozhranie Eatable a zabezpečuje implementáciu metódy eat().
  2. Vytvorí sa objekt triedy Anonymous, na ktorý sa odkazuje 'p', referenčná premenná typu Eatable.

Interná trieda vygenerovaná kompilátorom

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