Kaip įdiegti anoniminę klasę „Java“



Šis tinklaraštis suteiks jums išsamių ir išsamių žinių apie anoniminę „Java“ klasę su pavyzdžiais ir kaip tai skiriasi nuo įprastos klasės.

Anoniminės klasės leidžia jums rašyti mažą kodą ir tuo pačiu metu deklaruoti ir užmegzti kursą. Šios klasės neturi pavadinimų, ji naudojama, kai norite bet kurią klasę naudoti tik vieną kartą. Tai yra svarbus „Java“ programavimo aspektas. Supraskime, kas yra „Java“ anoniminė klasė tokia tvarka:

Anoniminių klasių paskelbimas





kas yra duomenų struktūra java

Paprastai mes kuriame klasę, t. Y. Deklaruojame klasę, tačiau anoniminės klasės yra išraiškos, o tai reiškia, kad mes anoniminę klasę apibrėžiame kitoje išraiška . Paprastais žodžiais tariant, anoniminė vidinė klasė yra klasė be pavadinimų ir sukurtas tik vienas objektas.

Anonymous-Class-In-Java



Anoniminė klasė yra naudinga, kai mes turime sukurti objekto egzempliorių su klasės ar sąsajos perkrovos metodais, nesukurdami klasės poklasio.

Anonimą galima sukurti dviem būdais:

  • Klasė (taip pat gali būti santrauka)
  • Sąsaja

Anoniminėje klasėje galime paskelbti:



  • Laukai
  • Papildomi metodai
  • Egzempliorių iniciatoriai
  • Vietinės klasės

„Java“ anoniminės klasės sintaksė

Anoniminės klasės sintaksė yra tokia pati kaip konstruktoriaus, išskyrus tai, kad bloke yra klasės apibrėžimas, kaip parodyta toliau esančiame fragmente:

// AnonymousClass = sąsaja, abstrakti / konkreti klasė. AnonymousClass t = new AnonymousClass () {// metodai ir laukai public void someMethod () {// kodas eina čia}}

Pažvelkime į šį pavyzdį:

Šis pavyzdysHelloAnonymousClass, vietinių kintamųjų inicializavimo sakiniuose naudoja anonimines klasespasveikink Kažkasbet kintamojo inicializavimui naudoja vietinę klasęsveikintiPasaulis:

public class HelloAnonymousClass {interface HelloWorld {public void sayHello () public void sayHelloTo (String someone)} public void sayHello () {class GreetWorld įgyvendina 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')} viešas niekinis sayHelloTo (kažkieno eilutė) {name = kažkas System.out.println ('hola' + vardas)}} greetWorld.sayHello () greetSomeone.sayHelloTo ('Doe')} vieša statika negaliojantis mainas (eilutė ... argumentai) {HelloAnonymousClass myApp = new HelloAnonymousClass () myApp.sayHello ()}}

Kaip matėme, kad anoniminė klasė yra išraiška, sintaksė yra tokia pati kaip konstruktorius, išskyrus tai, kad bloke yra klasės apibrėžimas. Apsvarstykite objekto „Sveiki Kažkas“ momentą:

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

Anoniminę klasę sudaro:

  • naujas operatorius.
  • Jis gali įdiegti sąsają arba išplėsti klasę. Kaip ir aukščiau pateiktame pavyzdyje, ji įgyvendina sąsają.
  • Jame yra skliaustai, kaip ir įprastose klasėse, siekiant perduoti argumentus konstruktoriui.
  • Yra kūnas, kuriame yra metodo deklaracijos. Deklaracijos neleidžiamos.

Anoniminė klasė turėtų būti teiginių dalis.

Ankstesniame pavyzdyje anoniminė klasės išraiška yra teiginio, kurį inicijuoja, dalispasveikink Kažkas.

Anoniminės klasės kūrimo būdai „Java“

Yra 3 būdai, kaip sukurti „Java“ vidinę klasę

  • Pratęsdamas klasę

Mes galime sukurti anoniminę vidinę klasę išplėsdami kitą klasę, tarkime, kad mes turime sukurti giją naudodami „Thread“ klasę, mes galime sukurti anoniminę vidinę klasę, užuot sukūrę atskirą klasę.

// Programa iliustruojanti „Anonymous Inner class“, išplėsdama kitą klasės klasę „AnonymousThreadClass“ {public static void main (String [] args) {// Anonymous Inner class, kuri išplečia Thread klasę Thread t = new Thread () {public void run () {System .out.println ('Vaikas!')}} t.start () System.out.println ('Tėvai!')}}

Išvestis:

Tėve!

skaitmenų suma java

Vaikas!

  • Įdiegus sąsają

Taip pat galime sukurti anoniminę vidinę klasę, įdiegdami sąsają. Dabar, kai mes sukūrėme vidinę klasę panašiai pratęsdami klasę, galime sukurti klasę, kuri įgyvendina sąsają.

// Programa, skirta iliustruoti anoniminę vidinę klasę, įgyvendinant sąsajos klasę AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class, kuri įgyvendina sąsają Runnable r = new Runnable () {public void run () {System.out .println ('Vaikas!')}} Gija t = nauja gija (r) t.start () System.out.println ('Tėvai!')}}

Išvestis:

Tėve!

Vaikas!

  • Kaip argumentą metodui / konstruktoriui

Norėdami suprasti sintaksę, pažvelkime į toliau pateiktą pavyzdį:

// Programa iliustruojanti „Anonymous Inner“ klasę pagal argumentų klasę „AnonymousThreadClass“ {public static void main (String [] args) {// Anoniminė klasė su konstruktoriaus argumentu Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Vaikas!')}}) t.start () System.out.println ('Tėvai!')}}

Išvestis:

Tėve!

java c ++ pitonas

Vaikas!

Skirtumas tarp įprastos ir anoniminės vidinės klasės

  • Mes galime įgyvendinti kelis sąsajų skaičius naudodami įprastą klasę, bet turėdami anoniminę vidinę klasę, galime įdiegti tik vieną sąsają.

  • Su įprasta klase mes galime pratęsti klasę ir taip pat įdiegti kelias sąsajas, tačiau, turėdami anoniminę vidinę klasę, mes galime išplėsti klasę arba įdiegti sąsają, bet ne abu tuo pačiu metu.

  • Su anonimais mes negali rašyti konstruktorius nes anoniminė vidinė klasė neturi pavadinimo, o konstruktoriaus vardas turėtų būti toks pats kaip klasės pavadinimas.

Šiame straipsnyje mes pamatėme, kas yra anoniminė vidinė klasė ir kaip mes galime ją sukurti. mes patyrėme anoniminės vidinės klasės sintaksę ir tai, kaip mes galime sukurti anoniminę klasę 3 būdais, ir tuo mes baigėme šį „Anonymous Class“ „Java“ straipsnyje. Patikrinkite pateikė Edureka.

Turite klausimą? Paminėkite tai šio straipsnio komentarų skiltyje ir mes kuo greičiau susisieksime su jumis.