access modifiers java tutorial with examples
Ta video vadnica s pomočjo primerov pojasnjuje, kaj so modifikatorji dostopa v Javi in kako uporabljati privzete, javne, zaščitene in zasebne modifikatorje dostopa:
V Javi imamo razrede in predmete. Ti razredi in predmeti so v paketu. Poleg tega imajo razredi lahko ugnezdene razrede, metode, spremenljivke itd. Ker je Java objektno usmerjen programski jezik, moramo slediti enkapsulaciji, v kateri skrijemo neželene podrobnosti.
Java ponuja entitete, imenovane »Modifikatorji dostopa ali specifikatorji dostopa«, ki nam pomagajo omejiti obseg ali vidnost paketa, razreda, konstruktorja, metod, spremenljivk ali drugih podatkovnih članov. Kličejo se tudi ti modifikatorji dostopa »Specifikatorji vidnosti«.
Z uporabo specifikatorjev dostopa lahko določeno metodo ali spremenljivko razreda omejimo na dostop ali skrijemo pred drugimi razredi.
=> Tukaj preverite VSE Vadnice za Java.
ado net vprašanja in odgovori za izkušene
Kaj se boste naučili:
- Video vadnica o modifikatorjih dostopa v Javi
- Dostop do modifikatorjev v Javi
- Vrste modifikatorjev dostopa v Javi
- Zaključek
Video vadnica o modifikatorjih dostopa v Javi
Dostop do modifikatorjev v Javi
Specifikatorji dostopa določajo tudi, do katerih podatkovnih članov (metod ali polj) razreda lahko dostopajo drugi podatkovni člani razredov ali paketov itd. Da bi zagotovili enkapsulacijo in ponovno uporabo, so ti specifikatorji / modifikatorji dostopa sestavni del objektno usmerjenega programiranja.
Modifikatorji v Javi so dveh vrst:
# 1) Modifikatorji dostopa
Modifikatorji dostopa v Javi nam omogočajo, da nastavimo obseg ali dostopnost ali vidnost podatkovnega člana, naj bo to polje, konstruktor, razred ali metoda.
# 2) Modifikatorji, ki nimajo dostopa
Java ponuja tudi ne-dostopne specifikatorje, ki se uporabljajo z razredi, spremenljivkami, metodami, konstruktorji itd.
Nekateri specifikatorji / modifikatorji, ki nimajo dostopa v Javi, so:
- statično
- dokončno
- povzetek
- prehodno
- hlapljivo
- sinhronizirano
- domač
V naših prejšnjih vadnicah smo obravnavali statične, sinhronizirane in spremenljive ključne besede. Ostale modifikatorje, ki nimajo dostopa, bomo pokrivali v naslednjih vajah, saj presegajo področje uporabe te vadnice.
Vrste modifikatorjev dostopa v Javi
Java ponuja štiri vrste specifikatorjev dostopa, ki jih lahko uporabljamo z razredi in drugimi entitetami.
To so:
# 1) Privzeto: Kadar določena stopnja dostopa ni določena, se domneva, da je privzeta. Obseg privzete ravni je znotraj paketa.
# 2) Javno: To je najpogostejša raven dostopa in kadar je specifikator javnega dostopa uporabljen z entiteto, je ta entiteta dostopna znotraj ali zunaj razreda, znotraj ali zunaj paketa itd.
# 3) Zaščiteno: Raven zaščitenega dostopa ima obseg, ki je znotraj paketa. Zaščitena entiteta je dostopna tudi zunaj paketa prek podedovanega razreda ali podrejenega razreda.
# 4) Zasebno: Ko je entiteta zasebna, do te entitete ni mogoče dostopati zunaj razreda. Zasebna entiteta je dostopna samo znotraj razreda.
Modifikatorje dostopa lahko povzamemo v naslednji tabeli.
Določnik dostopa | Notranji razred | Notranji paket | Podrazred zunanjega paketa | Zunanji paket |
---|---|---|---|---|
Zasebno | Da | Ne | Ne | Ne |
Privzeto | Da | Da | Ne | Ne |
Zaščiteno | Da | Da | Da | Ne |
Javno | Da | Da | Da | Da |
Nato bomo podrobno razpravljali o vsakem od teh specifikatorjev dostopa.
Privzeti določevalniki dostopa
Privzeti modifikator dostopa v Javi nima določene ključne besede. Kadar modifikator dostopa ni določen, se domneva, da je privzeti. Entitete, kot so razredi, metode in spremenljivke, imajo lahko privzeti dostop.
Privzeti razred je dostopen znotraj paketa, vendar ni dostopen zunaj paketa, tj.
Podobno je privzeta metoda ali spremenljivka dostopna tudi znotraj paketa, v katerem so definirani, in ne zunaj paketa.
Spodnji program prikazuje privzeti modifikator dostopa v Javi.
class BaseClass { void display() //no access modifier indicates default modifier { System.out.println('BaseClass::Display with 'dafault' scope'); } } class Main { public static void main(String args()) { //access class with default scope BaseClass obj = new BaseClass(); obj.display(); //access class method with default scope } }
Izhod:
V zgornjem programu imamo razred in metodo v njem brez kakršnega koli modifikatorja dostopa. Tako imata prikaz razreda in metode privzeti dostop. Nato vidimo, da lahko v metodi neposredno ustvarimo objekt razreda in pokličemo metodo.
Modifikator javnega dostopa
Razred ali metoda ali podatkovno polje, določeno kot „javno“, je dostopno iz katerega koli razreda ali paketa v programu Java. Javni subjekt je dostopen znotraj paketa in zunaj njega. Na splošno je modifikator javnega dostopa modifikator, ki entitete sploh ne omejuje.
class A { public void display() { System.out.println('SoftwareTestingHelp!!'); } } class Main { public static void main(String args()) { A obj = new A (); obj.display(); } }
Izhod:
Specifikacija zaščitenega dostopa
Specifikator zaščitenega dostopa omogoča dostop do entitet prek podrazredov razreda, v katerem je entiteta prijavljena. Ni pomembno, ali je razred v istem paketu ali drugem paketu, a dokler je razred, ki poskuša dostopati do zaščitene entitete, podrazred tega razreda, je entiteta dostopna.
Upoštevajte, da razreda in vmesnika ni mogoče zaščititi, torej ne moremo uporabiti zaščitenih modifikatorjev za razrede in vmesnike.
Modifikator zaščitenega dostopa se običajno uporablja v odnosih med starši in otroki.
Spodnji program prikazuje uporabo modifikatorja zaščitenega dostopa v Javi.
//A->B->C = class hierarchy class A { protected void display() { System.out.println('SoftwareTestingHelp'); } } class B extends A {} class C extends B {} class Main{ public static void main(String args()) { B obj = new B(); //create object of class B obj.display(); //access class A protected method using obj C cObj = new C(); //create object of class C cObj.display (); //access class A protected method using cObj } }
Izhod:
Modifikator zasebnega dostopa
'Zasebni' modifikator dostopa je tisti, ki ima najnižjo stopnjo dostopnosti. Metode in polja, ki so razglašena za zasebna, niso dostopna zunaj razreda. Dostopni so samo znotraj razreda, ki ima te zasebne entitete za člane.
Vprašanja za internetske storitve .net
Upoštevajte, da zasebni entiteti podrazredi razreda niso niti vidni. Zasebni modifikator dostopa zagotavlja enkapsulacijo v Javi.
Nekaj točk, ki jih je treba opozoriti glede modifikatorja zasebnega dostopa.
- Modifikatorja zasebnega dostopa ni mogoče uporabiti za razrede in vmesnike.
- Obseg zasebnih entitet (metod in spremenljivk) je omejen na razred, v katerem so prijavljene.
- Razred z zasebnim konstruktorjem ne more ustvariti predmeta razreda iz katerega koli drugega mesta, kot je glavna metoda. (Več podrobnosti o zasebnih konstruktorjih je razloženo v naši prejšnji vadnici).
Spodnji program Java uporablja Modifikator zasebnega dostopa.
class TestClass{ //private variable and method private int num=100; private void printMessage(){System.out.println('Hello java');} } public class Main{ public static void main(String args()){ TestClass obj=new TestClass(); System.out.println(obj.num);//try to access private data member - Compile Time Error obj.printMessage();//Accessing private method - Compile Time Error } }
Izhod:
Zgornji program daje napako pri prevajanju, saj poskušamo dostopati do članov zasebnih podatkov z uporabo predmeta razreda.
Vendar obstaja metoda za dostop do spremenljivk zasebnih članov. Ta metoda uporablja getterje in setterje v Javi. Tako nudimo javno metodo pridobivanja v istem razredu, v katerem je deklarirana zasebna spremenljivka, tako da lahko getter bere vrednost zasebne spremenljivke.
Podobno ponujamo tudi javno nastavitveno metodo, ki nam omogoča, da nastavimo vrednost za zasebno spremenljivko.
Naslednji program Java prikazuje uporabo metod getter in setter za zasebne spremenljivke v Javi.
class DataClass { private String strname; // getter method public String getName() { return this.strname; } // setter method public void setName(String name) { this.strname= name; } } public class Main { public static void main(String() main){ DataClass d = new DataClass(); // access the private variable using the getter and setter d.setName('Java Programming'); System.out.println(d.getName()); } }
Izhod:
Zgornji program ima razred z zasebno spremenljivko niza. Ponujamo javno metodo člana getName, ki vrne vrednost zasebne spremenljivke. V razredu nudimo tudi javno metodo setName, ki kot argument vzame String in ga dodeli zasebni spremenljivki.
Ker sta obe metodi javni, lahko do njih enostavno pridemo z uporabo predmeta razreda. Na ta način lahko premagamo napako pri prevajanju, ki se pojavi vsakič, ko poskušamo dostopati do članov zasebnih podatkov razreda.
Pogosto zastavljena vprašanja
V # 1) Koliko modifikatorjev dostopa je v Javi?
Odgovor: Java ponuja štiri modifikatorje, to so privzeti, javni, zaščiteni in zasebni.
V # 2) Kaj so modifikatorji dostopa in modifikatorji dostopa v Javi?
Odgovor: Modifikatorji dostopa določajo vidnost ali obseg programske entitete, kot je razred ali metoda, spremenljivka ali konstruktor. Modifikatorji, ki nimajo dostopa, definirajo vedenje entitete. Na primer, sinhronizirana metoda ali blok pomeni, da lahko deluje v okolju z več nitmi, končna spremenljivka pa pomeni, da je konstanta.
V # 3) Zakaj so določevalci dostopa pomembni?
Odgovor: Modifikatorji določajo, kateri razred lahko dostopa do drugih razredov ali metod ali spremenljivk. Z uporabo specifikatorjev dostopa lahko omejimo dostop različnim razredom, metodam, konstruktorjem in spremenljivkam, prav tako pa zagotovimo enkapsulacijo in ponovno uporabo entitet Java.
V # 4) Kateri modifikatorji se za razred ne uporabljajo?
Odgovor: Zaščiteni in zasebni modifikatorji se za razred ne uporabljajo.
V # 5) Kaj so modifikatorji brez dostopa?
Odgovor: Modifikatorji, ki definirajo vedenje entitet, kot so razred, metoda ali spremenljivke, s katerimi so povezani, niso modifikatorji dostopa. Kot že ime pove, dostopa ne določajo. Java ponuja različne modifikatorje, ki nimajo dostopa, kot so statični, končni, sinhronizirani, spremenljivi, abstraktni itd.
Več o modifikatorjih vidnosti
Java ponuja veliko modifikatorjev za dostop do spremenljivke, metod in konstruktorjev.
V Javi obstajajo 4 vrste spremenljivk za dostop:
- Zasebno
- Javno
- Privzeto
- Zaščiteno
# 1) Zasebno
Če je spremenljivka deklarirana kot zasebna, je do nje mogoče dostopati znotraj razreda. Ta spremenljivka ne bo na voljo zunaj predavanja. Torej zunanji člani ne morejo dostopati do zasebnih članov.
Opomba: Predavanja in vmesniki ne morejo biti zasebni.
model življenjskega cikla slapa razvoja programske opreme
# 2) Javno
Do metod / spremenljivk z javnimi modifikatorji lahko dostopajo vsi drugi razredi v projektu.
# 3) Zaščiteno
Če je spremenljivka razglašena za zaščiteno, je do nje mogoče dostopati v istih razredih paketov in podrazredih drugih paketov.
Opomba: Modifikatorja zaščitenega dostopa ni mogoče uporabiti za razred in vmesnike.
# 4) Privzeti modifikator dostopa
Če je spremenljivka / metoda definirana brez ključne besede modifikatorja dostopa, bo to imelo privzeti dostop modifikatorja.
Modifikatorji dostopa | Vidnost |
---|---|
Javno | Vidno za vse razrede. |
Zaščiteno | Vidno za razrede z v paketu in podrazrede drugega paketa. |
No Access Modifier (privzeto) | Vidno učiteljem s paketom |
zasebno | Vidno z v razredu. Zunaj predavalnice ni dostopen. |
Demo razred:
class AccessModifiersDemo { private int empsalaray ; public String empName; private void calculateSalary() { System.out.println('insid methodone'); } public String printEmpName(String empName ) { this.empName=empName; return empName; } }
Dostop do članov predavanja v drugem razredu:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); accessobj.calculateSalary(); } }
Izhod:
Dostop do javnih članov:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); System.out.println(accessobj.printEmpName('Bobby')); } }
Izhod:
Bobby
Pomembne točke:
- Specifikatorji dostopa določajo vidnost razreda.
- Če nobena ključna beseda ni omenjena, je to privzeti modifikator dostopa.
- Štirje modifikatorji v Javi vključujejo javni, zasebni, zaščiteni in privzeti.
- Zasebnih in zaščitenih ključnih besed ni mogoče uporabiti za razrede in vmesnike.
Zaključek
V tej vadnici smo podrobno raziskali modifikatorje dostopa v Javi. Java ponuja štiri vrste modifikatorjev dostopa ali specifikatorjev vidnosti, tj.privzeti, javni, zasebni in zaščiteni. Privzeti modifikator ni povezan s ključno besedo.
Če razred ali metoda ali spremenljivka z njo ni povezan specifikator dostopa, predvidevamo, da ima privzeti dostop. Modifikator javnega dostopa omogoča dostop do vsega, ne glede na razred ali paket. V primeru javnega modifikatorja dostop ni omejen.
Specifikator zaščitene vidnosti omogoča dostop samo do podrazredov, ki podedujejo razred, v katerem so prijavljeni zaščiteni člani. Modifikator zasebnega dostopa omogoča, da je najmanjša dostopnost članov zasebnih podatkov dostopna samo znotraj razreda.
Modifikatorji omejujejo obseg podatkovnih članov, kot so razredi, konstruktorji, metode in spremenljivke, in določajo omejitev, do katerih razredov ali paketov lahko dostopajo. Specifikatorji dostopa spodbujajo enkapsulacijo in ponovno uporabo v Javi. Razredi in vmesniki ne morejo biti zaščiteni ali zasebni.
=> Obiščite tukaj, če se želite naučiti Jave iz nič.
Priporočeno branje
- Vadnica za odsev Java s primeri
- JAVA Vadnica za začetnike: 100+ praktičnih Javnih video vadnic
- Uvod v programski jezik Java - Video vadnica
- Java SWING Vadnica: Vsebnik, komponente in obdelava dogodkov
- Java String z vmesnikom String Buffer in String Builder
- Uvajanje Java: Ustvarjanje in izvajanje datoteke Java JAR
- Navidezni stroj Java: kako JVM pomaga pri zagonu aplikacije Java
- Vadnica za Java Collections Framework (JCF)