Kuidas rakendada Java-s anonüümset klassi



See ajaveeb annab teile üksikasjalikud ja põhjalikud teadmised Java anonüümsest klassist koos näidete ja selle tavaklassi erinevustega.

Anonüümsed klassid võimaldavad teil kirjutada väikese koodi ja võimaldavad teil samal ajal deklareerida ja vahetada klassi. Nendel klassidel pole nimesid, seda kasutatakse juhul, kui soovite mõnda klassi kasutada ainult üks kord. See on Java-programmeerimise oluline aspekt. Mõistame, mis on Java anonüümne klass järgmises järjekorras:

Anonüümsete klasside kuulutamine





Tavaliselt loome klassi, st kuulutame klassi, kuid anonüümsed klassid on avaldised, mis tähendab, et määratleme anonüümsed klassid teises väljendus . Lihtsamalt öeldes on anonüümne siseklass nimeta klass ja luuakse ainult üks objekt.

Anonymous-Class-In-Java



Anonüümne klass on kasulik, kui peame looma objekti eksemplari klassi või liidese ülekoormusmeetoditega ilma klassi alamklassi loomata.

Anonüümset saab luua kahel viisil:

  • Klass (võib olla ka abstraktne)
  • Liides

Anonüümses klassis võime kuulutada järgmist:



  • Väljad
  • Lisameetodid
  • Esimese algatajad
  • Kohalikud klassid

Anonüümse klassi süntaks Java-s

Anonüümse klassi süntaks on täpselt nagu konstruktor, välja arvatud see, et plokis on klassi määratlus, nagu on näidatud allolevas jupis:

// AnonymousClass = liides, abstraktne / konkreetne klass. AnonymousClass t = new AnonymousClass () {// meetodid ja väljad public void someMethod () {// kood läheb siia}}

Vaatame järgmist näidet:

kuidas javas midagi võimule tõsta

Järgmine näideHelloAnonymousClass, kasutab kohalike muutujate initsialiseerimise avaldustes anonüümseid klassetervita kedagikuid kasutab muutuja initsialiseerimiseks kohalikku klassitervitaMaailm:

public class HelloAnonymousClass {liides HelloWorld {public void sayHello () public void sayHelloTo (String keegi)} public void sayHello () {class GreetWorld rakendab HelloWorld {String name = 'world' public void sayHello () {sayHelloTo ('world')} public void sayHelloTo (Keegi stringitakse) {name = keegi System.out.println ('Tere' + nimi)}} HelloWorld greetWorld = new GreetWorld () HelloWorld greetSomeone = new HelloWorld () {String name = 'jon' public void sayHello ( ) {sayHelloTo ('Jon')} avalik kehtetu sayHelloTo (String keegi) {name = keegi void main (String ... args) {HelloAnonymousClass myApp = new HelloAnonymousClass () myApp.sayHello ()}}

Nagu nägime, et anonüümne klass on avaldis, on süntaks täpselt nagu konstruktor, välja arvatud see, et plokis on klassi määratlus. Mõelge objekti greetSomeone kiirendamisele:

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

Anonüümne klass koosneb järgmistest:

  • uus operaator.
  • See võib rakendada liidest või laiendada klassi. Nagu ülaltoodud näites, rakendab see liidest.
  • See sisaldab sulge nagu tavalised klassid, et anda konstruktorile argumente.
  • Sisaldab keha, mis sisaldab meetodi deklaratsioone. Deklaratsioonid pole lubatud.

Anonüümne klass peaks olema osa avaldustest.

Ülaltoodud näites on anonüümne klassiväljend osa avaldusest, mille algatabtervita kedagi.

Anonüümse klassi loomise viisid Java-s

Java-siseklassi loomiseks on kolm võimalust

  • Klassi pikendades

Saame luua anonüümse siseklassi, laiendades teist klassi, oletame, et lõime tuleb luua lõime abil, et luua eraldi klassi loomise asemel anonüümse siseklassi.

// Programm Anonymous Inner klassi illustreerimiseks, laiendades teist klassiklassi AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class, mis laiendab lõimeklassi Thread t = new Thread () {public void run () {System .out.println ('Laps!')}} t.start () System.out.println ('Vanem!')}}

Väljund:

Lapsevanem!

Laps!

  • Rakendades liidest

Liidese juurutamise abil saame luua ka anonüümse siseklassi. Nüüd, kui lõime siseklassi, laiendades klassi sarnaselt, saame luua liidese rakendava klassi.

// Programm Anonymous Inner klassi illustreerimiseks, rakendades liideklassi AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner klass, mis rakendab liidest Runnable r = new Runnable () {public void run () {System.out .println ('Laps!')}} Lõng t = uus lõim (r) t.start () System.out.println ('Vanem!')}}

Väljund:

Lapsevanem!

Laps!

  • Argumendina meetodile / konstruktorile

Süntaksist arusaamiseks vaadake allolevat näidet:

// Programm Anonüümse siseklassi illustreerimiseks argumentklassi järgi AnonymousThreadClass {public static void main (String [] args) {// Anonüümne klass konstruktori argumendiga Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Laps!')}}) t.start () System.out.println ('Vanem!')}}

Väljund:

Lapsevanem!

Laps!

Tavalise ja anonüümse siseklassi erinevus

  • Saame rakendada mitu liidese arvu kasutades tavalist klassi, kuid anonüümse siseklassi korral saame rakendada ainult ühte liidest.

  • Tavaklassiga saame klassi laiendada ja rakendada ka mitut liidest, kuid anonüümse siseklassi korral võime kas klassi laiendada või liidese rakendada, kuid mitte mõlemat korraga.

  • Anonüümsete meiega ei saa kirjutada konstruktorit kuna anonüümsel siseklassil puudub nimi ja konstruktori nimi peaks olema sama mis klassi nimi.

Selles artiklis nägime, mis on anonüümne siseklass ja kuidas seda luua. läbisime anonüümse siseklassi süntaksi ja ka selle, kuidas saame anonüümset klassi luua kolmel viisil ja sellega jõuame selle Java-i artikli juurde. Vaadake autor Edureka.

mis on java tüüpi casting

Kas teil on küsimus? Mainige seda selle artikli kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.