Juurdepääsu modifikaatorid on selgitatud

Mis on juurdepääsu modifikaatorid?

Kas olete kunagi tahtnud määratleda, kuidas inimesed pääsevad juurde mõnele teie kinnisvarale? Sa ei taha, et keegi sinu aluspesu kasutaks. Teie kampsunit ja võib-olla ka teie autot saavad kasutada teie lähedased sõbrad ja sugulased.

Sarnaselt oma positsioonidele juurdepääsu taseme seadistamisele kontrollib Java ka juurdepääsu. Soovite määratleda muutujate, meetodite ja klasside juurdepääsutaseme sõltuvalt sellest, millistele teistele klassidele soovite neile juurde pääseda.

Java pakub 4 taseme juurdepääsumuundureid. See tähendab, et saate muutujale, meetodile või klassile juurdepääsu muuta 4 viisil. Need neli viisi on privaatsed, avalikud, kaitstud ja vaikimisi.

Neid juurdepääsu modifikaatoreid saab rakendada väljadele, meetoditele ja klassidele (klassid on erijuhtum, me vaatame neid selle artice lõpus). Siin on kiire ülevaade1 Access Levelsigaühe kohta Access Modifier:

Juurdepääsu modifikaatorite tabeli viide:

Juurdepääsu teisendajate tabel

Privaatse juurdepääsu modifitseerija

Võimaldab muutujale või meetodile juurde pääseda ainult selles klassis, kus see loodi. Ükski teine ​​klass, mis pole muutuja või meetodi loonud, ei pääse sellele juurde. See sarnaneb teie siseorganitega. Neile pääseb juurde ainult omanik. Muutuja või meetodi privaatseks muutmiseks lisage lihtsalt muutuja või meetodi tüübi ette privaatne märksõna. Kasutagem kodeerimisnäites privaatsust. Kui pank soovib oma laenude intressimääraks 10%, tagaks see, et intressimuutuja (oletame int int_rate;) jääks privaatseks, kuna ükski teine ​​klass ei üritaks sellele juurde pääseda ja seda muuta. Näiteks;

private String name;

Ülaltoodud näide loob muutuja nimega nimi ja tagab, et see on juurdepääsetav ainult selles klassis, millest see loodi.

Teine meetodi näide on

private void setAge(){ System.out.println("Set Age"); }

Ülaltoodud näide tagab, et meetod setAge on juurdepääsetav ainult selles klassis, kust see loodi, ja kusagil mujal.

Avaliku juurdepääsu modifitseerija

Avaliku juurdepääsu modifikaator on isikliku juurdepääsu modifikaatori otsene vastand. Klass, meetod või muutuja saab kuulutada avalikuks ja see tähendab, et sellele on juurdepääs igast klassist. Avaliku juurdepääsu modifikaatorit saab võrrelda riikliku kooliga, kuhu igaüks saab sisseastumist taotleda ja vastu võtta.

Avalikule klassile, meetodile või muutujale pääseb igal ajal juurde mis tahes muust klassist.

Näiteks klassi avalikuks kuulutamiseks on vaja ainult järgmist:

public class Animal{ }

Sellisena pääseb loomaklassi juurde mõni teine ​​klass.

public int age; public int getAge(){ }

Eespool on toodud viisid muutuja ja meetodi avalikuks määramiseks.

Vaikepöörduse modifikaator

Vaikimisi juurdepääsu modifikaator erineb kõigist teistest juurdepääsu modifikaatoritest, kuna sellel pole märksõna. Vaikimisi juurdepääsu modifikaatori kasutamiseks ei kasuta te ühtegi teist juurdepääsu modifikaatorit ja see tähendab lihtsalt, et kasutate vaikepöörduse modifikaatorit.

Näiteks klassi vaikepöörduse modifikaatori kasutamiseks kasutate

class Bird{ }

See tähendab põhimõtteliselt, et kasutate vaikimisi juurdepääsu modifikaatorit. Vaikimisi juurdepääsu modifikaator võimaldab muutujale, meetodile või klassile sama paketi teiste klasside jaoks juurdepääsu. Pakett on seotud klasside kogum failikataloogis. Pakettide kohta lisateabe saamiseks vaadake pakettide jaotist.

Mis tahes muutujale, meetodile või klassile, mis on deklareeritud kasutama vaikepöördusmuundurit, ei pääse juurde ükski teine ​​klass väljaspool paketti, kust see deklareeriti.

int age; void setNewAge(){ }

Ülaltoodud on mõned viisid vaikimisi juurdepääsumuunduri kasutamiseks muutuja või meetodi jaoks. Ärge unustage, vaikimisi juurdepääsu modifikaatoril pole võtmesõna. Kolme muu juurdepääsu modifikaatori puudumine tähendab, et kasutate vaikimisi juurdepääsu modifikaatorit.

Kaitstud juurdepääsu modifikaator

Kaitstud juurdepääsu modifikaator on tihedalt seotud vaikepöörduse modifikaatoriga. Kaitstud juurdepääsu modifikaatoril on vaikepöörduse modifikaatori omadused, kuid seda on vähe parandatud.

Ainult muutuja ja meetod kasutavad kaitstud juurdepääsu modifikaatorit. Vähe on seda, et klassiväline klassiväline klass, kust muutuja või meetod deklareeriti, pääseb mainitud muutujale või meetodile juurde. See on siiski võimalik AINULT juhul, kui see pärineb klassilt.

Klass teisest paketist, mis näeb kaitstud muutujaid või meetodeid, peab olema laiendanud muutujate või meetodite loonud klassi.

Pange tähele ilma pärimise eeliseta, et vaikepöörduse modifikaatoril on täpselt sama juurdepääs kui kaitstud juurdepääsu modifikaatoril.

Allpool on toodud näited kaitstud juurdepääsu modifikaatori kasutamisest:

protected int age; protected String getName(){ return "My Name is You"; }

Klasside juurdepääsu modifikaatorid

Vaikimisi võib klassidel olla ainult 2 modifikaatorit:

  • avalik
  • modifikaator puudub (vaikimisi modifikaator)

Nii et see tähendab, et klassidesse ei saa kunagi seada privatevõi protected?

See on loogiline, miks sa tahaksid teha eraklassi? Ükski teine ​​klass ei saaks seda kasutada. Kuid mõnikord võite klassi kinnistada teise klassi. Need eriklassid, inner classessaab seadistada privaatseks või kaitstud nii, et ainult tema ümbritsev klass pääseks sellele juurde:

public class Car { private String brand; private Engine engine; // ... private class Engine { // ... } }

Ülaltoodud näites Carsaab klassi kasutada ainult Engineklass. Mõnel juhul võib see olla kasulik.

Teistesse klassidesse ei saa kunagi seada protectedega private, sest sellel pole mõtet. protectedJuurdepääsu teisendaja kasutatud asju package-private, kuid võimalus olema kättesaadav alamklassiks. Java keeles pole sellist mõistet nagu „alampaketid” või „pakendi pärimine”.