Hoe anonieme klasse in Java te implementeren



Deze blog geeft je een gedetailleerde en uitgebreide kennis van anonieme lessen in Java met voorbeelden en hoe deze verschilt van een gewone les.

Met anonieme klassen kun je een kleine code schrijven en tegelijkertijd klasse declareren en instantiëren. Deze klassen hebben geen namen, het wordt gebruikt als u een klas maar één keer wilt gebruiken. Het is een belangrijk aspect van Java-programmering. Laten we eens kijken wat anonieme klasse in Java is in de volgende volgorde:

Anonieme lessen aangeven





Normaal gesproken maken we een klasse, d.w.z. we declareren klasse, maar anonieme klassen zijn uitdrukkingen, wat betekent dat we de anonieme klasse in een andere definiëren uitdrukking . In eenvoudige bewoordingen is de anonieme innerlijke klasse een klasse zonder namen en wordt er slechts één object gemaakt.

Anonymous-Class-In-Java



Anonieme klasse is handig wanneer we een instantie van het object moeten maken met overbelastingsmethoden van een klasse of interface zonder een subklasse van een klasse te maken.

Anoniem kan op twee manieren worden gemaakt:

  • Klasse (kan ook abstract zijn)
  • Koppel

In de anonieme klas kunnen we het volgende aangeven:



  • Velden
  • Extra methoden
  • Instance Initializers
  • Lokale lessen

Syntaxis van anonieme klasse in Java

De syntaxis van een anonieme klasse is net als de constructor, behalve dat er een klassendefinitie in het blok zit, zoals weergegeven in het onderstaande fragment:

hoe anaconda voor python te gebruiken
// AnonymousClass = interface, abstracte / concrete klasse. AnonymousClass t = nieuwe AnonymousClass () {// methoden en velden openbaar void someMethod () {// code komt hier}}

Laten we eens kijken naar het volgende voorbeeld:

Het volgende voorbeeld,Hallo Anonieme Klasse, gebruikt anonieme klassen in de initialisatie-instructies van de lokale variabeleniemand groetenmaar gebruikt een lokale klasse voor de initialisatie van de variabelegreetWorld:

public class HelloAnonymousClass {interface HelloWorld {public void sayHello () public void sayHelloTo (String iemand)} public void sayHello () {class GreetWorld implementeert HelloWorld {String name = 'world' public void sayHello () {sayHelloTo ('world')} public void sayHelloTo (String iemand) {name = iemand System.out.println ('Hallo' + naam)}} HelloWorld greetWorld = nieuwe GreetWorld () HelloWorld greetSomeone = nieuwe HelloWorld () {String name = 'jon' openbare void sayHello ( ) {sayHelloTo ('Jon')} public void sayHelloTo (String iemand) {name = iemand System.out.println ('hola' + name)}} greetWorld.sayHello () greetSomeone.sayHelloTo ('Doe')} public static void main (String ... args) {HelloAnonymousClass myApp = nieuwe HelloAnonymousClass () myApp.sayHello ()}}

Zoals we hebben gezien is anonieme klasse een uitdrukking, de syntaxis is net als constructor, behalve dat er een klassendefinitie in het blok zit. Beschouw de instantiatie van het greetSomeone-object:

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

De anonieme klasse is als volgt samengesteld:

  • nieuwe operator.
  • Het kan een interface implementeren of een klasse uitbreiden. Zoals in het bovenstaande voorbeeld implementeert het de interface.
  • Het bevat haakjes net als normale klassen om argumenten door te geven aan de constructor.
  • Bevat body die methodedeclaraties bevat. Aangiften zijn niet toegestaan.

Anonieme klas moet deel uitmaken van uitspraken.

In het bovenstaande voorbeeld maakt de anonieme klasse-expressie deel uit van de instructie die wordt geïnitieerd dooriemand groeten.

Manieren om een ​​anonieme klas te maken in Java

Er zijn 3 manieren om Inner Class in Java te creëren

  • Door klasse uit te breiden

We kunnen een anonieme innerlijke klasse maken door een andere klasse uit te breiden, stel dat we een thread moeten maken door Thread-klasse te gebruiken, we kunnen een anonieme innerlijke klasse maken in plaats van een afzonderlijke klasse te maken.

// Programma om Anonymous Inner class te illustreren door een andere class class uit te breiden AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class die Thread class uitbreidt Thread t = new Thread () {public void run () {System .out.println ('Kind!')}} t.start () System.out.println ('Ouder!')}}

Uitgang:

Ouder!

Kind!

  • Door Interface te implementeren

We kunnen ook een anonieme innerlijke klasse creëren door de interface te implementeren. Nu we een innerlijke klasse hebben gemaakt door klasse op dezelfde manier uit te breiden, kunnen we een klasse maken die een interface implementeert.

// Programma om Anonymous Inner class te illustreren door interfaceklasse AnonymousThreadClass {public static void main (String [] args) {// Anonieme Inner class te implementeren die interface Runnable implementeert r = new Runnable () {public void run () {System.out .println ('Kind!')}} Thread t = nieuwe Thread (r) t.start () System.out.println ('Parent!')}}

Uitgang:

Ouder!

Kind!

  • Als argument voor een methode / constructor

Om de syntaxis te begrijpen, kijken we naar het onderstaande voorbeeld:

// Programma om Anonymous Inner class te illustreren door argument class AnonymousThreadClass {public static void main (String [] args) {// Anonieme klasse met constructor argument Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Child!')}}) t.start () System.out.println ('Parent!')}}

Uitgang:

Ouder!

Kind!

Verschil tussen gewone en anonieme innerlijke klasse

  • We kunnen implementeren meerdere aantallen interfaces door de normale klasse te gebruiken, maar met een anonieme innerlijke klasse kunnen we slechts één interface implementeren.

  • Met gewone les kunnen we dat een klas uitbreiden en ook meerdere interfaces implementeren, maar met een anonieme innerlijke klasse kunnen we een klasse uitbreiden of een interface implementeren, maar niet beide tegelijk.

  • Met anonieme wij kan constructor niet schrijven omdat de anonieme binnenste klasse geen naam heeft en de naam van de constructor hetzelfde moet zijn als de klassenaam.

    wat is de fabriek in angularjs

In dit artikel hebben we gezien wat een anonieme innerlijke klasse is en hoe we er een kunnen maken. we hebben de syntaxis van anonieme innerlijke klasse doorgenomen en ook hoe we op 3 manieren een anonieme klasse kunnen maken en hiermee komen we aan het einde van dit artikel over anonieme klasse in Java. Bekijk de door Edureka.

Heb je een vraag? Vermeld het in het commentaargedeelte van dit artikel en we nemen zo snel mogelijk contact met u op.