Kuidas rakendada pesastatud klassi Java-s?

See java sisestatud klassi käsitlev artikkel aitab teil mõista, kuidas pesastatud klassid rakendatakse näidisprogrammi abil.

Javas saab klassi defineerida mõnes teises klassis ja selliseid klasse nimetatakse pesastatud klassideks. Need tunnid aitavad teil loogiliselt grupeerida ainult ühes kohas kasutatavaid klasse. See suurendab kapseldamise kasutamist ja loob loetavama ja hooldatavama koodi. See blogi teemal „Pesaklass Java-s” annab teile kiire sissejuhatuse pesastatud klassidesse . Allpool on siin blogis käsitletud teemad:

Pesastatud klass Java keeles

The klass klassi sees kirjutatut nimetatakse pesastatud klassiks, sisemist klassi hoidvat klassi aga väliseks klassiks. Allpool on mõned punktid, mida Java pesastatud klasside puhul meeles pidada -





  • Pesastatud klassi ulatus on piiratud selle ümbritseva klassiga.
  • Pesastatud klassil on juurdepääs selle klassi liikmetele, kus see on pesastatud. Kuid ümbritsev klass ei pääse pesastatud klassi liikmetele juurde.
  • Pesastatud klass on selle sulgev klassi liige.
  • Pesastatud klassi võib kuulutada avalikuks, privaatseks, kaitstuks või pakett-privaatseks.

Pesastatud klasside tüübid

Sisemine / mittestaatiline pesastatud klass: Javas on mittestaatilised klassid turvamehhanismid. Klassiga ei saa seostada juurdepääs muutmisele privaatne, kuid kui teil on klass mõne teise klassi liikmena, saab mittestaatilise klassi muuta privaatseks.

Siseklasside tüübid ja miinus



  • Siseklass
  • Meetod-lokaalne siseklass
  • Anonüümne siseklass

Siseklass

Siseklassi loomiseks peate lihtsalt kirjutama klassi ühe klassi. Siseklass võib olla privaatne, kuhu ei pääse juurde objekt väljaspool klassi. Allpool on siseklassi loomise programm. Selles näites muudetakse siseklass privaatseks ja sellele pääseb klassi meetodi abil.

klass Outer_Test {int number // siseklassi privaatklass Inner_Test {public void print () {System.out.println ('See on meie sisemine klass')}}} // Sisemisele klassile juurdepääs meetodilt void display_Inner () { Inner_Test internal = new Inner_Test () internal.print ()}} public class My_class {public static void main (String args []) {// Välisklassi instantsimine Outer_Test external = new Outer_Test () // Juurdepääs meetodile display_Inner () . external.display_Inner ()}}

Väljund
Pesastatud klassi sisemine- Edureka

Meetod-lokaalne siseklass

Javas saab klassi kirjutada a piires ja see on kohalik tüüp. Sarnaselt lokaalsete muutujatega on siseklassi ulatus meetodi piires piiratud. Meetod-kohalik siseklass lisatakse ainult meetodi sisse, kus siseklass on määratletud. Allpool olev programm näitab, kuidas kasutada meetodilokaalset siseklassi.



public class Outerclass {// välisklassi eksemplari meetod void my_Method () {int num = 1001 // method-local internal class class StarInner_Test {public void print () {System.out.println ('See on tähe siseklass ' + num)}} // siseklassi lõpp // Siseklassi avamine StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass external = new Outerclass () external. minu_meetod ()}}

Väljund

Anonüümne siseklass

Anonüümne siseklass on siseklass, mis on deklareeritud ilma klassi nimeta. Anonüümses siseklassis kuulutame ja instantsime selle korraga. Neid kasutatakse tavaliselt siis, kui peate klassi või liidese meetodi tühistama. Allolev programm näitab, kuidas kasutada anonüümset siseklassi -

abstraktne klass AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest internal = new AnonymousInnerTest () {public void mytest () {System.out.println ('See on anonüümse sisekatse klassi näide ')}} sisemine.test ()}}

Väljund-

Staatiline pesastatud klass: TO on pesastatud klass, mis on välisklassi staatiline liige. Erinevalt sisemisest klassist ei pääse staatiline sisestatud klass välisklassi liikme muutujatele juurde, kuna staatiline sisestatud klass ei vaja välisklassi eksemplari. Seega pole OuterClassiga viidatud välisklassile. See. Staatilise pesastatud klassi süntaks on -

klass MyOuter {staatiline klass Nested_Test {}}

Näide staatilisest pesastatud klassist

public class Outer {staatiline klass Nested_Test {public void my_method () {System.out.println ('See on Edureka sisestatud testiklass')}} public staatiline void main (String args []) {Outer.Nested_Test nested = new Outer. Pesatud_Test () pesastatud.minu_meetod ()}}

Väljund

Staatiliste ja mittestaatiliste pesastatud klasside erinevus

Staatilistel pesastatud klassidel pole juurdepääsu teistele ümbritseva klassi liikmetele otse. Olles staatiline, peab see objekti kaudu pääsema juurde oma ümbritseva klassi mittestaatilistele liikmetele, mis tähendab, et ta ei saa otse viidata oma ümbritseva klassi mittestaatilistele liikmetele. Ja selle piirangu tõttu kasutatakse staatilisi pesastatud klasse harva.

mis on parameeter tabelis

Mittestaatilistel pesastatud klassidel on juurdepääs kõigile selle välisklassi liikmetele ja nad saavad neile otse viidata samamoodi nagu teised välise klassi mittestaatilised liikmed.

Enne selle artikli lõppu vaatame mõnda põhipunkti.

Peamised punktid, mida meeles pidada

  • Siseklassi koheldakse kui klassi tavalist liiget.
  • Kuna siseklass on välisklassi liige, saate oma siseklassi rakendada erinevaid juurdepääsu modifikaatoreid, näiteks kaitstud, privaatseid.
  • Kuna pesastatud klass on selle kaasava klassi liige, saate seda kasutada. (dot) tähistus pesastatud klassi ja selle liikmete juurde pääsemiseks.
  • Pesastatud klassi kasutamine muudab teie koodi loetavamaks ja pakub paremat kapseldamine .
  • Siseklassil on juurdepääs teistele välisklassi liikmetele, isegi kui nad on kuulutatud privaatseteks.

Sellega jõuame Java-sisestatud klasside blogi lõpuni. Kui soovite Java kohta rohkem teada saada, vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.

Kas teil on meile küsimus? Palun mainige seda selle blogi „Nested Class in Java“ kommentaaride osas ja võtame teiega ühendust niipea kui võimalik.