Paano Ipapatupad ang Anonymous Class sa Java



Ang blog na ito ay magbibigay sa iyo ng isang Detalyado at Comprehensive kaalaman ng Anonymous Class sa Java na may Mga Halimbawa at Paano Ito Iba't ibang mula sa isang Regular na Klase.

Hinahayaan ka ng mga hindi nagpapakilalang klase na sumulat ng maliit na code at hayaan kang ideklara at bigyan ng sigla ang klase nang sabay. Ang mga klase ay walang mga pangalan, ginagamit ito kung nais mong gumamit ng anumang klase nang isang beses lamang. Ito ay isang mahalagang aspeto ng Java Programming. Unawain natin kung ano ang Anonymous Class sa Java sa sumusunod na pagkakasunud-sunod:

Pagdeklara ng Mga Anonymous na Klase





Karaniwan ay lumilikha kami ng isang klase. Ipinahayag namin ang klase ngunit, ang mga hindi nagpapakilalang klase ay mga expression na nangangahulugang tinutukoy namin ang hindi nagpapakilalang klase sa isa pa ekspresyon . Sa mga simpleng salita, ang hindi nagpapakilalang panloob na klase ay isang klase na walang mga pangalan at iisang bagay lamang ang nilikha.

Anonymous-Class-In-Java



Ang anonymous na klase ay kapaki-pakinabang kapag kailangan naming lumikha ng isang halimbawa ng object na may mga overloading na pamamaraan ng isang klase o interface nang hindi lumilikha ng isang subclass ng klase.

Ang anonymous ay maaaring malikha sa dalawang paraan:

  • Klase (maaari ding maging Abstract)
  • Interface

Sa hindi nagpapakilalang klase maaari naming ideklara ang sumusunod:



  • Mga patlang
  • Dagdag na pamamaraan
  • Mga Initializer ng Instance
  • Mga lokal na klase

Syntax ng Anonymous Class sa Java

Ang syntax ng isang hindi nagpapakilalang klase ay tulad ng tagapagbuo maliban na mayroong isang kahulugan ng klase sa bloke tulad ng ipinakita sa snippet sa ibaba:

// AnonymousClass = interface, abstract / kongkreto na klase. AnonymousClass t = bagong AnonymousClass () {// mga pamamaraan at patlang sa publiko na walang bisa ang ilangMethod () {// pupunta dito ang code}}

Tingnan natin ang sumusunod na halimbawa:

Ang sumusunod na halimbawa,HelloAnonymousClass, gumagamit ng mga hindi nagpapakilalang klase sa mga pahayag sa pagsisimula ng mga lokal na variablebatiin ang isang taongunit, gumagamit ng isang lokal na klase para sa pagsisimula ng variablepagbatiWorld:

pampublikong klase HelloAnonymousClass {interface HelloWorld {public void sayHello () public void sayHelloTo (String someone)} public void sayHello () {class GreetWorld implts 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 = bagong HelloAnonymousClass () myApp.sayHello ()}}

Tulad ng nakita natin na ang hindi nagpapakilalang klase ay isang expression ang syntax ay tulad ng tagapagbuo maliban sa isang kahulugan ng klase sa bloke. Isaalang-alang ang pagsisimula ng pagbati ng pagbati ng Isang bagay:

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

Ang hindi nagpapakilalang klase ay binubuo ng mga sumusunod:

ano ang isang ideyang java
  • bagong operator.
  • Maaari itong magpatupad ng isang interface o pahabain ang isang klase. Tulad ng halimbawa sa itaas, ipinapatupad nito ang interface.
  • Naglalaman ito ng panaklong tulad ng mga normal na klase upang maipasa ang mga argumento sa tagapagbuo.
  • Naglalaman ng katawan na naglalaman ng mga pagdedeklara ng pamamaraan. Hindi pinapayagan ang mga deklarasyon.

Ang hindi kilalang klase ay dapat na bahagi ng mga pahayag.

Sa halimbawa sa itaas, ang hindi nagpapakilalang pagpapahayag ng klase ay bahagi ng pahayag na pinasimulan ngbatiin ang isang tao.

Mga Paraan upang Lumikha ng Anonymous Class sa Java

Mayroong 3 mga paraan upang lumikha ng Inner Class sa Java

  • Sa pamamagitan ng Pagpapalawak ng Klase

Maaari kaming lumikha ng isang hindi nagpapakilalang panloob na klase sa pamamagitan ng pagpapalawak ng iba pang klase, ipalagay na kailangan naming lumikha ng isang thread sa pamamagitan ng paggamit ng Thread class maaari kaming lumikha ng isang hindi nagpapakilalang panloob na klase sa halip na lumikha ng isang magkakahiwalay na klase.

// Program upang ilarawan ang klase ng Anonymous Inner sa pamamagitan ng pagpapalawak ng iba pang klase ng klase AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class na nagpapalawak sa Thread class Thread t = new Thread () {public void run () {System .out.println ('Bata!')}} t.start () System.out.println ('Magulang!')}}

Output:

Magulang!

Bata!

pagkakaiba sa pagitan ng c c ++ at java
  • Sa pamamagitan ng Pagpapatupad ng Interface

Maaari rin kaming lumikha ng isang hindi nagpapakilalang panloob na klase sa pamamagitan ng pagpapatupad ng interface. Ngayon, habang lumikha kami ng isang panloob na klase sa pamamagitan ng pagpapalawak ng klase nang katulad maaari kaming lumikha ng isang klase na nagpapatupad ng isang interface.

// Program upang ilarawan ang klase ng Anonymous Inner sa pamamagitan ng pagpapatupad ng interface class na AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class na nagpapatupad ng interface Runnable r = new Runnable () {public void run () {System.out .println ('Bata!')}} Thread t = bagong Thread (r) t.start () System.out.println ('Magulang!')}}

Output:

Magulang!

Bata!

  • Bilang isang argument sa isang Paraan / Tagatayo

Upang maunawaan ang syntax hinahanap ang halimbawa sa ibaba:

// Program upang ilarawan ang Anonymous Inner class ayon sa klase ng argument AnonymousThreadClass {public static void main (String [] args) {// Anonymous class with konstruktor argument Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Bata!')}}) t.start () System.out.println ('Magulang!')}}

Output:

Magulang!

Bata!

Pagkakaiba sa pagitan ng Regular at Anonymous Inner Class

  • Maaari naming ipatupad maraming bilang ng mga interface sa pamamagitan ng paggamit ng normal na klase ngunit, sa isang hindi nagpapakilalang panloob na klase, maaari lamang namin ipatupad ang isang interface.

  • Sa regular na klase ay makakaya natin magpahaba ng klase at nagpapatupad din ng maraming mga interface ngunit, na may isang hindi nagpapakilalang panloob na klase, maaari naming palawakin ang isang klase o magpatupad ng isang interface ngunit hindi pareho sa parehong oras.

  • Sa anonymous namin hindi maaaring magsulat ng tagapagbuo sapagkat ang hindi nagpapakilalang panloob na klase ay walang pangalan at pangalan ng tagapagbuo ay dapat na kapareho ng pangalan ng klase.

Sa artikulong ito, nakita namin kung ano ang isang hindi nagpapakilalang panloob na klase at paano kami makakalikha ng isa. dumaan kami sa syntax ng hindi nagpapakilalang panloob na klase at din kung paano kami makakalikha ng isang hindi nagpapakilalang klase sa 3 mga paraan at kasama nito, natapos namin ang artikulong Anonymous Class sa Java na ito. Suriin ang ni Edureka.

May isang Tanong? Nabanggit ito sa Seksyon ng Komento ng artikulong ito at babalikan ka namin sa lalong madaling panahon.