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
- Syntaxe anonymní třídy v Javě
- Způsoby vytvoření anonymní třídy v Javě
- Rozdíl mezi běžnou a anonymní třídou
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
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ěkoho
ale 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.