logo

Modifikatorji dostopa v Javi

  1. Modifikator zasebnega dostopa
  2. Vloga zasebnega gradbenika
  3. Privzeti modifikator dostopa
  4. Modifikator zaščitenega dostopa
  5. Modifikator javnega dostopa
  6. Modifikator dostopa s preglasitvijo metode

V Javi obstajata dve vrsti modifikatorjev: modifikatorji dostopa in modifikatorji nedostopa .

Modifikatorji dostopa v Javi določajo dostopnost ali obseg polja, metode, konstruktorja ali razreda. Raven dostopa do polj, konstruktorjev, metod in razreda lahko spremenimo tako, da na njih uporabimo modifikator dostopa.

Obstajajo štiri vrste modifikatorjev dostopa do Java:

    Zasebno: raven dostopa zasebnega modifikatorja je samo znotraj razreda. Do njega ni mogoče dostopati zunaj razreda.Privzeto: Raven dostopa privzetega modifikatorja je samo znotraj paketa. Do njega ni mogoče dostopati zunaj paketa. Če ne določite nobene ravni dostopa, bo privzeta.Zaščiteno: Raven dostopa zaščitenega modifikatorja je znotraj paketa in zunaj paketa prek podrejenega razreda. Če ne naredite podrejenega razreda, do njega ni mogoče dostopati zunaj paketa.Javno: raven dostopa javnega modifikatorja je povsod. Do njega lahko dostopate znotraj razreda, zunaj razreda, znotraj paketa in zunaj paketa.

Obstaja veliko modifikatorjev brez dostopa, kot so statični, abstraktni, sinhronizirani, izvorni, nestanovitni, prehodni itd. Tukaj se bomo naučili samo modifikatorjev dostopa.


Razumevanje modifikatorjev dostopa do Java

Razumejmo modifikatorje dostopa v Javi s preprosto tabelo.

Modifikator dostopaznotraj razredaznotraj paketazunanji paket samo po podrazreduzunanji paket
Zasebno INnnn
Privzeto ININnn
Zaščiteno INININn
Javno ININININ

1) Zasebno

Modifikator zasebnega dostopa je dostopen samo znotraj razreda.

kako izklopiti razvijalski način android

Preprost primer modifikatorja zasebnega dostopa

V tem primeru smo ustvarili dva razreda A in Simple. Razred vsebuje zasebnega podatkovnega člana in zasebno metodo. Do teh zasebnih članov dostopamo zunaj razreda, zato je med prevajanjem prišlo do napake.

 class A{ private int data=40; private void msg(){System.out.println('Hello java');} } public class Simple{ public static void main(String args[]){ A obj=new A(); System.out.println(obj.data);//Compile Time Error obj.msg();//Compile Time Error } } 

Vloga zasebnega gradbenika

Če katerega koli konstruktorja razreda naredite zasebnega, ne morete ustvariti primerka tega razreda zunaj razreda. Na primer:

 class A{ private A(){}//private constructor void msg(){System.out.println('Hello java');} } public class Simple{ public static void main(String args[]){ A obj=new A();//Compile Time Error } } 

Opomba: razred ne more biti zaseben ali zaščiten, razen ugnezdeni razred.


2) Privzeto

Če ne uporabite nobenega modifikatorja, se obravnava kot privzeto privzeto. Privzeti modifikator je dostopen samo znotraj paketa. Do njega ni mogoče dostopati zunaj paketa. Zagotavlja večjo dostopnost kot zasebno. Je pa bolj restriktivna kot zaščitena in javna.

odstranite angular cli

Primer privzetega modifikatorja dostopa

V tem primeru smo ustvarili dva paketa pack in mypack. Do razreda A dostopamo zunaj njegovega paketa, ker razred A ni javen, zato do njega ni mogoče dostopati zunaj paketa.

 //save by A.java package pack; class A{ void msg(){System.out.println('Hello');} } 
 //save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A();//Compile Time Error obj.msg();//Compile Time Error } } 

V zgornjem primeru sta obseg razreda A in njegove metode msg() privzeta, zato do nje ni mogoče dostopati zunaj paketa.


3) Zaščiteno

The modifikator zaščitenega dostopa je dostopen znotraj paketa in zunaj paketa, vendar samo prek dedovanja.

Modifikator zaščitenega dostopa je mogoče uporabiti za podatkovnega člana, metodo in konstruktor. Ni ga mogoče uporabiti v razredu.

Zagotavlja večjo dostopnost kot privzeti modifikator.

Primer modifikatorja zaščitenega dostopa

V tem primeru smo ustvarili dva paketa pack in mypack. Paket paketa razreda A je javen, zato je do njega mogoče dostopati zunaj paketa. Toda metoda msg tega paketa je deklarirana kot zaščitena, tako da je do nje mogoče dostopati zunaj razreda samo prek dedovanja.

 //save by A.java package pack; public class A{ protected void msg(){System.out.println('Hello');} } 
 //save by B.java package mypack; import pack.*; class B extends A{ public static void main(String args[]){ B obj = new B(); obj.msg(); } } 
 Output:Hello 

4) Javno

The modifikator javnega dostopa je dostopen povsod. Ima najširši obseg med vsemi drugimi modifikatorji.

zamenjaj niz v Javi

Primer modifikatorja javnega dostopa

 //save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} } 
 //save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } } 
 Output:Hello 

Modifikatorji dostopa do Java s preglasitvijo metode

Če preglasite katero koli metodo, preglasena metoda (tj. deklarirana v podrazredu) ne sme biti bolj restriktivna.

 class A{ protected void msg(){System.out.println('Hello java');} } public class Simple extends A{ void msg(){System.out.println('Hello java');}//C.T.Error public static void main(String args[]){ Simple obj=new Simple(); obj.msg(); } } 

Privzeti modifikator je bolj restriktiven kot zaščiten. Zato pride do napake med prevajanjem.