Kako implementirati anonimni razred u Javu



Ovaj će vam blog pružiti detaljno i sveobuhvatno znanje o anonimnom razredu u Javi s primjerima i po čemu se razlikuje od redovnog razreda.

Anonimni tečajevi omogućuju vam da napišete mali kôd, a istovremeno vam omogućuju deklariranje i izradu instance. Ove klase nemaju imena, koristi se kada bilo koju klasu želite koristiti samo jednom. To je važan aspekt Java programiranja. Shvatimo što je Anonimni razred na Javi sljedećim redoslijedom:

Prijavljivanje anonimnih predavanja





Obično kreiramo klasu, tj. Deklariramo klasu, ali anonimne klase su izrazi, što znači da anonimnu klasu definiramo u drugoj izraz . Jednostavnim riječima, anonimna unutarnja klasa je klasa bez imena i stvoren je samo jedan objekt.

Anonymous-Class-In-Java



Anonimna klasa korisna je kada moramo stvoriti instancu objekta s metodama preopterećenja klase ili sučelja bez stvaranja potklase klase.

Anonimni se mogu stvoriti na dva načina:

  • Predavanje (može biti i Sažetak)
  • Sučelje

U anonimnom razredu možemo objaviti sljedeće:



  • Polja
  • Dodatne metode
  • Inicijalizatori instance
  • Lokalni razredi

Sintaksa anonimne klase u Javi

Sintaksa anonimne klase je slična konstruktoru, osim što u bloku postoji definicija klase, kao što je prikazano u donjem isječku:

// AnonymousClass = sučelje, sažetak / konkretna klasa. AnonymousClass t = new AnonymousClass () {// metode i polja public void someMethod () {// kod ide ovdje}}

Pogledajmo sljedeći primjer:

Sljedeći primjer,HelloAnonymousClass, koristi anonimne klase u inicijalizacijskim izrazima lokalnih varijablipozdraviNetkoali, koristi lokalnu klasu za inicijalizaciju varijablepozdraviteSvijet:

javna klasa HelloAnonymousClass {sučelje HelloWorld {javna praznina sayHello () javna praznina sayHelloTo (String netko)} javna praznina sayHello () {klasa GreetWorld implementira HelloWorld {String name = 'world' public void sayHello () {sayHelloTo ('world')} javna praznina sayHelloTo (String netko) {name = netko System.out.println ('Hello' + name)}} HelloWorld greetWorld = new GreetWorld () HelloWorld greetSomeone = new HelloWorld () {String name = 'jon' public void sayHello ( ) {sayHelloTo ('Jon')} javna praznina sayHelloTo (String netko) {name = netko System.out.println ('hola' + name)}} greetWorld.sayHello () greetSomeone.sayHelloTo ('Doe')} javna statička void main (String ... args) {HelloAnonymousClass myApp = novi HelloAnonymousClass () myApp.sayHello ()}}

Kao što smo vidjeli da je anonimna klasa izraz, sintaksa je baš poput konstruktora, osim što u bloku postoji definicija klase. Razmotrite instanciju objekta greetSomeone:

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

Anonimni razred sastoji se od sljedećeg:

  • novi operater.
  • Može implementirati sučelje ili proširiti klasu. Kao u gornjem primjeru, implementira sučelje.
  • Sadrži zagrade baš kao i normalne klase kako bi se argumenti proslijedili konstruktoru.
  • Sadrži tijelo koje sadrži izjave o metodama. Izjave nisu dopuštene.

Anonimni tečaj trebao bi biti dio izjava.

što je hashmap u javi

U gornjem primjeru anonimni izraz klase dio je izraza koji pokrećepozdraviNetko.

Načini stvaranja anonimne nastave u Javi

Postoje 3 načina za stvaranje unutarnje klase u Javi

  • Proširivanjem nastave

Možemo stvoriti anonimnu unutarnju klasu proširivanjem druge klase, pretpostavimo da moramo stvoriti nit pomoću klase Thread, možemo stvoriti anonimnu unutarnju klasu umjesto da stvaramo zasebnu klasu.

// Program za ilustraciju anonimne unutarnje klase proširivanjem druge klase klase AnonymousThreadClass {javna statička void glavna (String [] args) {// Anonimna unutarnja klasa koja proširuje klasu teme Tema t = nova nit () {public void run () {System .out.println ('Dijete!')}} t.start () System.out.println ('Roditelj!')}}

Izlaz:

Roditelj!

Dijete!

  • Implementacijom sučelja

Također možemo stvoriti anonimnu unutarnju klasu implementiranjem sučelja. Sada, kako smo stvorili unutarnju klasu širenjem klase na sličan način, možemo stvoriti klasu koja implementira sučelje.

// Program za ilustraciju anonimne unutarnje klase primjenom klase sučelja AnonymousThreadClass {javna statička void glavna (String [] args) {// Anonimna unutarnja klasa koja implementira sučelje Runnable r = new Runnable () {public void run () {System.out .println ('Dijete!')}} Tema t = nova Tema (r) t.start () System.out.println ('Roditelj!')}}

Izlaz:

Roditelj!

Dijete!

  • Kao argument za metodu / konstruktor

Da bismo razumjeli sintaksu, pogledajmo primjer u nastavku:

// Program za ilustraciju Anonimne unutarnje klase razredom argumenata AnonymousThreadClass {public static void main (String [] args) {// Anonimna klasa s argumentom konstruktora Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Dijete!')}}) t.start () System.out.println ('Roditelj!')}}

Izlaz:

Roditelj!

Dijete!

Razlika između redovite i anonimne unutarnje klase

  • Možemo provesti višestruki broj sučelja korištenjem normalne klase, ali s anonimnom unutarnjom klasom možemo implementirati samo jedno sučelje.

  • Redovnim satom možemo produžiti razred i također implementirati više sučelja, ali s anonimnom unutarnjom klasom možemo ili proširiti klasu ili implementirati sučelje, ali ne oboje istovremeno.

  • S anonimnim mi ne može pisati konstruktor jer anonimna unutarnja klasa nema ime, a ime konstruktora mora biti isto kao i ime klase.

U ovom smo članku vidjeli što je anonimna unutarnja klasa i kako je možemo stvoriti. prošli smo kroz sintaksu anonimne unutarnje klase i također kako možemo stvoriti anonimnu klasu na 3 načina i time smo došli do kraja ovog članka Anonimna klasa na Javi. Pogledajte od Edureke.

Imate pitanje? Spomenite to u odjeljku za komentare ovog članka i javit ćemo vam se što je prije moguće.