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
- „Java“ anoniminės klasės sintaksė
- Anoniminės klasės kūrimo būdai „Java“
- Skirtumas tarp įprastos ir anoniminės klasės
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.
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žkas
bet 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.