Kā ieviest anonīmo klasi Java



Šis emuārs sniegs jums detalizētas un visaptverošas zināšanas par Java anonīmo klasi ar piemēriem un to, kā tas atšķiras no parastās klases.

Anonīmās klases ļauj jums rakstīt nelielu kodu un vienlaikus deklarēt un novirzīt klasi. Šīm klasēm nav vārdu, to lieto, ja vēlaties jebkuru klasi izmantot tikai vienu reizi. Tas ir svarīgs Java programmēšanas aspekts. Sapratīsim, kas ir anonīma klase Java šādā secībā:

ir maģistra grāds maģistrantūrā

Anonīmo klašu deklarēšana





Parasti mēs izveidojam klasi, t.i., mēs deklarējam klasi, bet anonīmās klases ir izteicieni, kas nozīmē, ka mēs definējam anonīmo klasi citā izteiksme . Vienkārši sakot, anonīma iekšējā klase ir klase bez nosaukumiem, un tiek izveidots tikai viens objekts.

Anonymous-Class-In-Java



Anonīma klase ir noderīga, ja mums ir jāizveido objekta eksemplārs ar klases vai saskarnes pārslodzes metodēm, neveidojot klases apakšklasi.

Anonīmus var izveidot divos veidos:

  • Klase (var būt arī abstrakta)
  • Saskarne

Anonīmā klasē mēs varam paziņot:



  • Lauki
  • Papildu metodes
  • Instances inicializētāji
  • Vietējās nodarbības

Anonīmās klases sintakse Java valodā

Anonīmās klases sintakse ir gluži kā konstruktors, izņemot to, ka blokā ir klases definīcija, kā parādīts zemāk esošajā fragmentā:

// AnonymousClass = interfeiss, abstrakta / konkrēta klase. AnonymousClass t = new AnonymousClass () {// metodes un lauki public void someMethod () {// kods iet šeit}}

Apskatīsim šādu piemēru:

Šis piemērsHelloAnonymousClass, vietējo mainīgo inicializācijas paziņojumos izmanto anonīmas klasessveicini Kādubet mainīgā inicializēšanai izmanto vietējo klasisveicinātPasaule:

public class HelloAnonymousClass {interfeiss HelloWorld {public void sayHello () public void sayHelloTo (String someone)} public void sayHello () {class GreetWorld ievieš 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 ()}}

Kā redzējām, ka anonīma klase ir izteiksme, sintakse ir gluži kā konstruktors, izņemot to, ka blokā ir klases definīcija. Apsveriet objekta greetSomeone instantāciju:

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

Anonīmo klasi veido:

  • jauns operators.
  • Tas var ieviest saskarni vai paplašināt klasi. Tāpat kā iepriekšējā piemērā, tā īsteno saskarni.
  • Tas satur iekavas tāpat kā parastās klases, lai nodotu argumentus konstruktoram.
  • Satur ķermeni, kurā ir metožu deklarācijas. Deklarācijas nav atļautas.

Anonīmai klasei jābūt paziņojumu daļai.

Iepriekš minētajā piemērā anonīmā klases izteiksme ir daļa no paziņojuma, kuru ierosinasveicini Kādu.

Veidi, kā izveidot anonīmu klasi Java

Iekšējo klasi Java var izveidot 3 veidos

  • Paplašinot klasi

Mēs varam izveidot anonīmu iekšējo klasi, paplašinot citu klasi, pieņemsim, ka mums ir jāizveido pavediens, izmantojot Thread klasi, mēs varam izveidot anonīmu iekšējo klasi, nevis izveidot atsevišķu klasi.

// Programma Anonymous Inner klases ilustrēšanai, paplašinot citu klases klasi AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class, kas paplašina Thread klasi Thread t = new Thread () {public void run () {System .out.println ('Bērns!')}} t.start () System.out.println ('Vecāks!')}}

Izeja:

Vecāks!

Bērns!

  • Īstenojot saskarni

Mēs varam izveidot arī anonīmu iekšējo klasi, ieviešot saskarni. Tagad, izveidojot iekšējo klasi, līdzīgi paplašinot klasi, mēs varam izveidot klasi, kas īsteno saskarni.

// Programma Anonymous Inner klases ilustrēšanai, ieviešot saskarnes klasi AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class, kas ievieš saskarni Runnable r = new Runnable () {public void run () {System.out .println ('Bērns!')}} pavediens t = jauns pavediens (r) t.start () System.out.println ('vecāks!')}}

Izeja:

Vecāks!

Bērns!

  • Kā arguments Metodam / Konstruktoram

Lai saprastu sintaksi, apskatīsim tālāk sniegto piemēru:

šķirošanas funkcija c ++
// Programma Anonymous Inner klases ilustrēšanai pēc argumentu klases AnonymousThreadClass {public static void main (String [] args) {// Anonīma klase ar konstruktora argumentu Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Bērns!')}}) t.start () System.out.println ('Vecāks!')}}

Izeja:

Vecāks!

Bērns!

Atšķirība starp parasto un anonīmo iekšējo klasi

  • Mēs varam īstenot vairāki saskarņu numuri izmantojot parasto klasi, bet ar anonīmu iekšējo klasi mēs varam ieviest tikai vienu saskarni.

  • Ar regulāru nodarbību mēs varam pagarināt klasi un arī ieviest vairākas saskarnes, bet ar anonīmu iekšējo klasi mēs varam vai nu paplašināt klasi, vai arī ieviest saskarni, bet ne abas vienlaikus.

  • Ar anonīmiem mēs nevar rakstīt konstruktors jo anonīmajai iekšējai klasei nav nosaukuma, un konstruktora vārdam jābūt tādam pašam kā klases nosaukumam.

Šajā rakstā mēs redzējām, kas ir anonīma iekšējā klase un kā mēs to varam izveidot. mēs izgājām anonīmās iekšējās klases sintaksi un arī to, kā mēs varam izveidot anonīmu klasi 3 veidos, un līdz ar to mēs beidzam šo anonīmās klases rakstu Java. Pārbaudiet autore Edureka.

Vai jums ir jautājums? Pieminiet to šī raksta komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.