Anoniminė „Java“ klasė

Šioje pamokoje sužinosite apie anonimines „Java“ klases naudodamiesi pavyzdžiais.

„Java“ klasėje gali būti kita klasė, vadinama įdėta klase. Sukurti įdėtą klasę galima nenurodant jokio pavadinimo.

Įdėta klasė, neturinti jokio pavadinimo, yra žinoma kaip anoniminė klasė.

Anoniminė klasė turi būti apibrėžta kitos klasės viduje. Taigi jis taip pat žinomas kaip anoniminė vidinė klasė. Jo sintaksė yra:

 class outerClass ( // defining anonymous class object1 = new Type(parameterList) ( // body of the anonymous class ); ) 

Anoniminės klasės paprastai pratęsia poklasius arba įgyvendina sąsajas.

Čia gali būti tipas

  1. superklasė, kurią tęsia anoniminė klasė
  2. sąsaja, kurią įgyvendina anoniminė klasė

Aukščiau pateiktas kodas sukuria object1anoniminės klasės objektą vykdymo metu.

Pastaba: Anoniminės klasės yra apibrėžtos išraiškos viduje. Taigi, kabliataškis naudojamas anoniminių klasių pabaigoje, norint nurodyti išraiškos pabaigą.

1 pavyzdys: anoniminė klasė, pratęsianti klasę

 class Polygon ( public void display() ( System.out.println("Inside the Polygon class"); ) ) class AnonymousDemo ( public void createClass() ( // creation of anonymous class extending class Polygon Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) ) 

Rezultatas

 Anoniminės klasės viduje. 

Ankstesniame pavyzdyje mes sukūrėme daugiakampio klasę. Jis turi vieną metodą display().

Tada mes sukūrėme anoniminę klasę, kuri pratęsia daugiakampio klasę ir nepaiso display()metodo.

Paleidus programą, sukuriamas anoniminės klasės objektas p1. Tada objektas iškviečia display()anoniminės klasės metodą.

2 pavyzdys: anoniminė klasė, naudojanti sąsają

 interface Polygon ( public void display(); ) class AnonymousDemo ( public void createClass() ( // anonymous class implementing interface Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) ) 

Rezultatas

 Anoniminės klasės viduje. 

Ankstesniame pavyzdyje mes sukūrėme anoniminę klasę, kuri įgyvendina Polygonsąsają.

Anoniminių klasių pranašumai

Anoniminėse klasėse objektai kuriami, kai tik jų reikia. Tai yra, objektai yra sukurti tam tikroms užduotims atlikti. Pavyzdžiui,

 Object = new Example() ( public void display() ( System.out.println("Anonymous class overrides the method display()."); ) ); 

Čia anoniminės klasės objektas sukuriamas dinamiškai, kai mums reikia nepaisyti display()metodo.

Anoniminės klasės taip pat padeda mums padaryti kodą glaustą.

Įdomios straipsniai...