logo

Modifikatori pristupa u Javi

  1. Modifikator privatnog pristupa
  2. Uloga privatnog graditelja
  3. Zadani modifikator pristupa
  4. Modifikator zaštićenog pristupa
  5. Modifikator javnog pristupa
  6. 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:

    Privatna: Razina pristupa privatnog modifikatora je samo unutar klase. Ne može mu se pristupiti izvan razreda.Zadano: Razina pristupa zadanog modifikatora je samo unutar paketa. Ne može mu se pristupiti izvan paketa. Ako ne navedete nijednu razinu pristupa, ona će biti zadana.Zaštićen: Razina pristupa zaštićenog modifikatora je unutar paketa i izvan paketa kroz podređenu klasu. Ako ne napravite podređenu klasu, ne može joj se pristupiti izvan paketa.Javnost: Razina pristupa javnog modifikatora je posvuda. Može mu se pristupiti unutar klase, izvan klase, unutar paketa i izvan paketa.

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 pristupaunutar razredaunutar paketavanjski paket samo po podklasivanjski paket
Privatna INNN
Zadano IINN
Zaštićen IIIN
Javnost IIII

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.