logo

Java Anonieme innerlijke klasse

De anonieme innerlijke klasse van Java is een innerlijke klasse zonder naam en waarvoor slechts één object wordt gemaakt. Een anonieme innerlijke klasse kan handig zijn bij het maken van een instance van een object met bepaalde 'extra's' zoals het overbelasten van methoden van een klasse of interface, zonder dat je een klasse daadwerkelijk in een subklasse hoeft te plaatsen.

In eenvoudige woorden: een klasse die geen naam heeft, staat in Java bekend als een anonieme innerlijke klasse. Het moet worden gebruikt als u een klasse- of interfacemethode moet overschrijven. Java Anonymous innerlijke klasse kan op twee manieren worden gemaakt:

  1. Klasse (kan abstract of concreet zijn).
  2. Koppel

Java-anoniem voorbeeld van een innerlijke klasse met behulp van klasse

TestAnoniemInner.java

 abstract class Person{ abstract void eat(); } class TestAnonymousInner{ public static void main(String args[]){ Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; p.eat(); } } 
Test het nu

Uitgang:

 nice fruits 

Interne werking van gegeven code

 Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; 
  1. Er wordt een klasse gemaakt, maar de naam ervan wordt bepaald door de compiler, die de klasse Person uitbreidt en de implementatie van de methode eat() verzorgt.
  2. Er wordt een object van de klasse Anonymous gemaakt waarnaar wordt verwezen met 'p', een referentievariabele van het type Persoon.

Interne klasse gegenereerd door de compiler

 import java.io.PrintStream; static class TestAnonymousInner extends Person { TestAnonymousInner(){} void eat() { System.out.println('nice fruits'); } } 

Java anoniem innerlijke klasse voorbeeld met behulp van interface

 interface Eatable{ void eat(); } class TestAnnonymousInner1{ public static void main(String args[]){ Eatable e=new Eatable(){ public void eat(){System.out.println('nice fruits');} }; e.eat(); } } 
Test het nu

Uitgang:

database met zuureigenschappen
 nice fruits 

Interne werking van gegeven code

Het voert twee hoofdtaken uit achter deze code:

 Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} }; 
  1. Er wordt een klasse gemaakt, maar de naam ervan wordt bepaald door de compiler, die de Eatable-interface implementeert en de implementatie van de eat()-methode verzorgt.
  2. Er wordt een object van de klasse Anonymous gemaakt waarnaar wordt verwezen met 'p', een referentievariabele van het type Eatable.

Interne klasse gegenereerd door de compiler

 import java.io.PrintStream; static class TestAnonymousInner1 implements Eatable { TestAnonymousInner1(){} void eat(){System.out.println('nice fruits');} }