Jak implementovat anonymní třídu v Javě



Tento blog vám poskytne podrobné a komplexní znalosti Anonymní třídy v Javě s příklady a jak se liší od běžné třídy.

Anonymní třídy umožňují psát malý kód a umožňují deklarovat a vytvořit instanci třídy současně. Tyto třídy nemají názvy, používá se, když chcete použít jakoukoli třídu pouze jednou. Je to důležitý aspekt programování v Javě. Pojďme pochopit, co je Anonymous Class v Javě v následujícím pořadí:

Deklarace anonymních tříd





Normálně vytváříme třídu, tj. Deklarujeme třídu, ale anonymní třídy jsou výrazy, což znamená, že definujeme anonymní třídu v jiné výraz . Jednoduše řečeno, anonymní vnitřní třída je třída bez jmen a je vytvořen pouze jeden objekt.

datový typ data v příkladu sql

Anonymous-Class-In-Java



Anonymní třída je užitečná, když musíme vytvořit instanci objektu metodami přetížení třídy nebo rozhraní bez vytvoření podtřídy třídy.

Anonymous lze vytvořit dvěma způsoby:

  • Třída (může být také Abstrakt)
  • Rozhraní

V anonymní třídě můžeme deklarovat následující:



  • Pole
  • Extra metody
  • Inicializátory instancí
  • Místní třídy

Syntaxe anonymní třídy v Javě

Syntaxe anonymní třídy je jako konstruktor, kromě toho, že v bloku je definice třídy, jak je znázorněno v úryvku níže:

// AnonymousClass = rozhraní, abstraktní / konkrétní třída. AnonymousClass t = new AnonymousClass () {// metody a pole public void someMethod () {// sem jde kód}}

Podívejme se na následující příklad:

Následující příklad,HelloAnonymousClass, používá anonymní třídy v inicializačních příkazech lokálních proměnnýchpozdravit někohoale pro inicializaci proměnné používá místní třídupozdravit svět:

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 ()}}

Jak jsme viděli, že anonymní třída je výraz, syntaxe je jako konstruktor, kromě toho, že v bloku je definice třídy. Zvažte vytvoření instance 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í třída se skládá z následujících položek:

  • nový operátor.
  • Může implementovat rozhraní nebo rozšířit třídu. Stejně jako ve výše uvedeném příkladu implementuje rozhraní.
  • Obsahuje závorky stejně jako normální třídy, aby bylo možné předat argumenty konstruktoru.
  • Obsahuje tělo, které obsahuje deklarace metod. Deklarace nejsou povoleny.

Anonymní třída by měla být součástí výpisů.

Ve výše uvedeném příkladu je výraz anonymní třídy součástí příkazu, který je iniciovánpozdravit někoho.

Způsoby vytvoření anonymní třídy v Javě

Existují 3 způsoby, jak vytvořit vnitřní třídu v Javě

  • Rozšířením třídy

Můžeme vytvořit anonymní vnitřní třídu rozšířením jiné třídy, předpokládejme, že musíme vytvořit vlákno pomocí třídy Thread, kterou můžeme vytvořit anonymní vnitřní třídu místo vytvoření samostatné třídy.

// Program pro ilustraci Anonymous Inner třídy rozšířením o další třídu třídy AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class that extends Thread class Thread t = new Thread () {public void run () {System .out.println ('Dítě!')}} t.start () System.out.println ('Rodič!')}}

Výstup:

Rodič!

Dítě!

rozdíl mezi třídou a rozhraním v Javě
  • Implementací rozhraní

Implementací rozhraní můžeme také vytvořit anonymní vnitřní třídu. Nyní, když jsme podobně vytvořili vnitřní třídu rozšířením třídy, můžeme vytvořit třídu, která implementuje rozhraní.

// Program pro ilustraci Anonymous Inner třídy implementací třídy rozhraní AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class that implements interface Runnable r = new Runnable () {public void run () {System.out .println ('Child!')}} Thread t = new Thread (r) t.start () System.out.println ('Parent!')}}

Výstup:

Rodič!

Dítě!

  • Jako argument pro metodu / konstruktor

Abychom porozuměli syntaxi, podívejme se na příklad níže:

// Program pro ilustraci Anonymní vnitřní třídy pomocí třídy argumentů AnonymousThreadClass {public static void main (String [] args) {// Anonymní třída s argumentem konstruktoru Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Dítě!')}}) t.start () System.out.println ('Rodič!')}}

Výstup:

Rodič!

Dítě!

Rozdíl mezi běžnou a anonymní vnitřní třídou

  • Můžeme realizovat více čísel rozhraní pomocí normální třídy, ale s anonymní vnitřní třídou můžeme implementovat pouze jedno rozhraní.

    Začínáme s pracovním stolem mysql
  • S běžnou třídou můžeme rozšířit třídu a také implementovat více rozhraní, ale s anonymní vnitřní třídou můžeme buď rozšířit třídu, nebo implementovat rozhraní, ale ne obojí současně.

  • S anonymními my nelze napsat konstruktor protože anonymní vnitřní třída nemá název a název konstruktoru by měl být stejný jako název třídy.

V tomto článku jsme viděli, co je anonymní vnitřní třída a jak ji můžeme vytvořit. prošli jsme si syntaxi anonymní vnitřní třídy a také to, jak můžeme vytvořit anonymní třídu třemi způsoby, a tím se dostáváme na konec tohoto článku Anonymous Class v jazyce Java. Podívejte se na podle Edureka.

Máte dotaz? Uveďte to v části Komentář tohoto článku a my se vám ozveme co nejdříve.