Ako implementovať anonymnú triedu v Jave



Tento blog vám poskytne podrobné a komplexné znalosti anonymnej triedy v jazyku Java s príkladmi a ako sa líši od bežnej triedy.

Anonymné triedy vám umožňujú písať malý kód a súčasne vám umožňujú deklarovať a vytvárať inštancie triedy. Tieto triedy nemajú názvy, používa sa, ak chcete použiť ktorúkoľvek triedu iba raz. Je to dôležitý aspekt programovania v jazyku Java. Poďme si predstaviť, čo je trieda Anonymous v Jave, v nasledujúcom poradí:

Deklarovanie anonymných tried





Normálne vytvoríme triedu, tj. Deklarujeme triedu, ale anonymné triedy sú výrazy, čo znamená, že anonymnú triedu definujeme v inej triede. výraz . Jednoduchými slovami, anonymná vnútorná trieda je trieda bez mien a vytvorí sa iba jeden objekt.

dátumový dátový typ v príklade sql

Anonymous-Class-In-Java



Anonymná trieda je užitočná, keď musíme vytvoriť inštanciu objektu metódami preťaženia triedy alebo rozhrania bez vytvorenia podtriedy triedy.

Anonymous je možné vytvoriť dvoma spôsobmi:

  • Trieda (môže byť aj abstraktná)
  • Rozhranie

V anonymnej triede môžeme deklarovať toto:



  • Polia
  • Extra metódy
  • Inicializátory inštancií
  • Miestne triedy

Syntax anonymnej triedy v Jave

Syntax anonymnej triedy je rovnaká ako konštruktor, až na to, že v bloku je definícia triedy, ako je uvedené v úryvku nižšie:

// AnonymousClass = rozhranie, abstraktná / konkrétna trieda. AnonymousClass t = new AnonymousClass () {// metódy a polia public void someMethod () {// sem sa dostane kód}}

Pozrime sa na nasledujúci príklad:

Nasledujúci príklad,HelloAnonymousClass, používa anonymné triedy v inicializačných príkazoch miestnych premennýchzdravímNiektoale na inicializáciu premennej používa lokálnu triedugreetWorld:

public class HelloAnonymousClass {interface HelloWorld {public void sayHello () public void sayHelloTo (String someone)} public void sayHello () {class GreetWorld implements HelloWorld {String name = 'world' public void sayHello () {sayHelloTo ('world')} public void sayHelloTo (String someone) {name = someone System.out.println ('Hello' + name)}} HelloWorld greetWorld = new GreetWorld () HelloWorld greetSomeone = new HelloWorld () {String name = 'jon' public void sayHello ( ) {sayHelloTo ('Jon')} public void sayHelloTo (String someone) {name = someone System.out.println ('hola' + name)}} greetWorld.sayHello () greetSomeone.sayHelloTo ('Doe')} public static void main (String ... args) {HelloAnonymousClass myApp = new HelloAnonymousClass () myApp.sayHello ()}}

Ako sme videli, že anonymná trieda je výraz, syntax je ako konštruktor, ibaže v bloku je definícia triedy. Zvážte vytvorenie inštancie objektu greetSomeone:

HelloWorld greetSomeone = new HelloWorld () {String name = 'jon' public void sayHello () {sayHelloTo ('Jon')} public void sayHelloTo (String someone) {name = someone System.out.println ('hola' + name) }}

Anonymná trieda obsahuje:

  • nový operátor.
  • Môže implementovať rozhranie alebo rozšíriť triedu. Rovnako ako v predchádzajúcom príklade implementuje rozhranie.
  • Obsahuje zátvorky rovnako ako bežné triedy, aby bolo možné odovzdať argumenty konštruktoru.
  • Obsahuje telo, ktoré obsahuje deklarácie metód. Vyhlásenia nie sú povolené.

Anonymná trieda by mala byť súčasťou výpisov.

Vo vyššie uvedenom príklade je anonymný výraz triedy súčasťou vyhlásenia, ktoré iniciujezdravímNiekto.

Spôsoby vytvárania anonymných tried v prostredí Java

Existujú 3 spôsoby, ako vytvoriť vnútornú triedu v Jave

  • Rozšírením triedy

Môžeme vytvoriť anonymnú vnútornú triedu rozšírením o ďalšiu triedu, predpokladajme, že musíme vytvoriť vlákno pomocou triedy Thread, môžeme vytvoriť anonymnú vnútornú triedu namiesto vytvorenia samostatnej triedy.

// Program na ilustráciu anonymnej vnútornej triedy rozšírením o ďalšiu triedu triedy AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class that extends Thread class Thread t = new Thread () {public void run () {System .out.println ('Dieťa!')}} t.start () System.out.println ('Rodič!')}}

Výkon:

Rodič!

Dieťa!

triediaca funkcia c ++
  • Implementáciou rozhrania

Implementáciou rozhrania môžeme vytvoriť aj anonymnú vnútornú triedu. Keď sme teraz vytvorili vnútornú triedu podobným rozšírením triedy, môžeme vytvoriť triedu, ktorá implementuje rozhranie.

// Program na ilustráciu anonymnej vnútornej triedy implementáciou triedy rozhrania AnonymousThreadClass {public static void main (String [] args) {// anonymná vnútorná trieda, ktorá implementuje rozhranie Runnable r = new Runnable () {public void run () {System.out .println ('Dieťa!')}} Vlákno t = nové Vlákno (r) t.start () System.out.println ('Rodič!')}}

Výkon:

Rodič!

Dieťa!

  • Ako argument pre metódu / konštruktor

Aby sme porozumeli syntaxi, pozrime sa na príklad nižšie:

// Program na ilustráciu Anonymnej vnútornej triedy podľa triedy argumentov AnonymousThreadClass {public static void main (String [] args) {// Anonymná trieda s argumentom konštruktora Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Dieťa!')}}) t.start () System.out.println ('Rodič!')}}

Výkon:

Rodič!

Dieťa!

Rozdiel medzi bežnou a anonymnou vnútornou triedou

  • Môžeme realizovať viac čísel rozhraní pomocou normálnej triedy, ale s anonymnou vnútornou triedou môžeme implementovať iba jedno rozhranie.

    čo je dax v moci bi
  • S bežnou triedou môžeme rozšíriť triedu a tiež implementovať viac rozhraní, ale s anonymnou vnútornou triedou môžeme buď rozšíriť triedu, alebo implementovať rozhranie, ale nie obe naraz.

  • S anonymnými my nemôžem napísať konštruktor pretože anonymná vnútorná trieda nemá meno a názov konštruktora by mal byť rovnaký ako názov triedy.

V tomto článku sme videli, čo je anonymná vnútorná trieda a ako ju môžeme vytvoriť. prešli sme si syntax anonymnej vnútornej triedy a tiež to, ako môžeme vytvoriť anonymnú triedu 3 spôsobmi, a tým sa dostávame na koniec tohto článku Anonymous Class in Java. Pozrite sa na od Edureka.

Máte otázku? Uveďte to v časti Komentár tohto článku a my sa vám ozveme čo najskôr.