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
- Syntax anonymnej triedy v Jave
- Spôsoby vytvárania anonymných tried v prostredí Java
- Rozdiel medzi bežnou a anonymnou triedou
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
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ímNiekto
ale 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.