- Modifikator privatnog pristupa
- Uloga privatnog graditelja
- Zadani modifikator pristupa
- Modifikator zaštićenog pristupa
- Modifikator javnog pristupa
- Modifikator pristupa s nadjačavanjem metode
U Javi postoje dvije vrste modifikatora: modifikatori pristupa i modifikatori nepristupa .
Modifikatori pristupa u Javi određuju dostupnost ili opseg polja, metode, konstruktora ili klase. Možemo promijeniti razinu pristupa polja, konstruktora, metoda i klase primjenom modifikatora pristupa na njih.
Postoje četiri vrste Java modifikatora pristupa:
Postoje mnogi modifikatori bez pristupa, kao što su statični, apstraktni, sinkronizirani, izvorni, nepostojani, prolazni, itd. Ovdje ćemo naučiti samo modifikatore pristupa.
Razumijevanje Java modifikatora pristupa
Razmotrimo modifikatore pristupa u Javi pomoću jednostavne tablice.
Modifikator pristupa | unutar razreda | unutar paketa | vanjski paket samo po podklasi | vanjski paket |
---|---|---|---|---|
Privatna | I | N | N | N |
Zadano | I | I | N | N |
Zaštićen | I | I | I | N |
Javnost | I | I | I | I |
1) Privatno
Modifikator privatnog pristupa dostupan je samo unutar klase.
puni oblik i d e
Jednostavan primjer modifikatora privatnog pristupa
U ovom smo primjeru stvorili dvije klase A i Simple. Klasa sadrži privatni podatkovni član i privatnu metodu. Ovim privatnim članovima pristupamo izvan klase, tako da postoji pogreška tijekom kompajliranja.
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 } }
Uloga privatnog graditelja
Ako bilo koji konstruktor klase učinite privatnim, ne možete stvoriti instancu te klase izvan klase. Na primjer:
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 } }
Napomena: klasa ne može biti privatna ili zaštićena osim ugniježđene klase.
2) Zadano
Ako ne koristite modifikator, to se tretira kao zadano prema zadanim postavkama. Zadani modifikator dostupan je samo unutar paketa. Ne može mu se pristupiti izvan paketa. Omogućuje veću pristupačnost od privatnog. No, ona je više restriktivna nego zaštićena i javna.
line autocad naredba
Primjer zadanog modifikatora pristupa
U ovom primjeru stvorili smo dva paketa pack i mypack. Pristupamo klasi A izvan njezinog paketa, budući da klasa A nije javna, pa joj se ne može pristupiti izvan 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 } }
U gornjem primjeru, opseg klase A i njegove metode msg() su zadani pa im se ne može pristupiti izvan paketa.
3) Zaštićeno
The modifikator zaštićenog pristupa je dostupan unutar paketa i izvan paketa, ali samo putem nasljeđivanja.
Modifikator zaštićenog pristupa može se primijeniti na podatkovni član, metodu i konstruktor. Ne može se primijeniti na razred.
Omogućuje veću pristupačnost od zadanog modifikatora.
Primjer modifikatora zaštićenog pristupa
U ovom smo primjeru stvorili dva paketa pack i mypack. Paket A klase paketa je javan, pa mu se može pristupiti izvan paketa. Ali msg metoda ovog paketa je deklarirana kao zaštićena, tako da joj se može pristupiti izvan klase samo putem nasljeđivanja.
//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 javnog pristupa dostupan je posvuda. Ima najširi opseg među svim ostalim modifikatorima.
Primjer modifikatora javnog pristupa
//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
Java modifikatori pristupa s nadjačavanjem metode
Ako nadjačavate bilo koju metodu, nadjačana metoda (tj. deklarirana u podklasi) ne smije biti restriktivnija.
primjer java karte
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(); } }
Zadani modifikator više je restriktivan nego zaštićen. Zbog toga dolazi do pogreške tijekom kompajliranja.