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
- Pesastatud klasside tüübid
- Staatiliste ja mittestaatiliste pesastatud klasside erinevus
- Peamised punktid, mida meeles pidada
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
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.