U ovom uputstvu naučit ćemo o Java Access Modifikatoru, njegovim vrstama i kako ih koristiti uz pomoć primjera.
Što su modifikatori pristupa?
U Javi se modifikatori pristupa koriste za postavljanje pristupačnosti (vidljivosti) klasa, sučelja, varijabli, metoda, konstruktora, članova podataka i metoda postavljača. Na primjer,
class Animal ( public void method1() (… ) private void method2() (… ) )
U gornjem primjeru deklarirali smo 2 metode: method1 () i method2 (). Ovdje,
- method1 je
public
- To znači da mu mogu pristupiti druge klase. - method2 je
private
- To znači da mu druge klase ne mogu pristupiti.
Obratite pažnju na ključnu riječ public
i private
. To su modifikatori pristupa u Javi. Poznati su i kao modifikatori vidljivosti.
Napomena : Ne možete postaviti modifikator pristupa getterskih metoda.
Vrste modifikatora pristupa
Prije nego što naučite o vrstama modifikatora pristupa, provjerite znate li pakete Java.
U Javi postoje četiri ključne riječi za modifikatore pristupa i to su:
Modifikator | Opis |
Zadano | deklaracije su vidljive samo unutar paketa (privatni paket) |
Privatni | deklaracije su vidljive samo unutar klase |
Zaštićen | deklaracije su vidljive unutar paketa ili svih potklasa |
Javnost | deklaracije su vidljive posvuda |
Zadani modifikator pristupa
Ako izričito ne navedemo nijedan modifikator pristupa za klase, metode, varijable itd., Tada se prema zadanim postavkama smatra zadani modifikator pristupa. Na primjer,
package defaultPackage; class Logger ( void message()( System.out.println("This is a message"); ) )
Ovdje klasa Logger ima zadani modifikator pristupa. A klasa je vidljiva svim klasama koje pripadaju defaultPackage paketu. Međutim, ako pokušamo koristiti klasu Logger u drugoj klasi izvan defaultPackage, dobit ćemo pogrešku pri kompilaciji.
Modifikator privatnog pristupa
Kada su varijable i metode deklarirane private
, ne može im se pristupiti izvan klase. Na primjer,
class Data ( // private variable private String name; ) public class Main ( public static void main(String() main)( // create an object of Data Data d = new Data(); // access private variable and field from another class d.name = "Programiz"; ) )
U gornjem primjeru proglasili smo privatnu varijablu koja se zove name i privatnu metodu imenovanu display()
. Kada pokrenemo program, dobit ćemo sljedeću pogrešku:
Main.java:18: error: name has private access in Data d.name = "Programiz"; ^
Pogreška se generira jer pokušavamo pristupiti privatnoj varijabli i privatnoj metodi klase Data iz klase Main.
Možda se pitate što ako trebamo pristupiti tim privatnim varijablama. U ovom slučaju možemo koristiti metodu getera i postavljača. Na primjer,
class Data ( private String name; // getter method public String getName() ( return this.name; ) // setter method public void setName(String name) ( this.name= name; ) ) public class Main ( public static void main(String() main)( Data d = new Data(); // access the private variable using the getter and setter d.setName("Programiz"); System.out.println(d.getName()); ) )
Izlaz :
Ime je Programiz
U gornjem primjeru imamo privatnu varijablu s imenom. Da bismo pristupili varijabli iz vanjske klase, koristili smo metode: getName()
i setName()
. Te se metode u Javi nazivaju getter i setter.
Ovdje smo koristili metodu postavljača ( setName()
) za dodjeljivanje vrijednosti varijabli, a metodu dobivanja ( getName()
) za pristup varijabli.
Koristili smo this
ključnu riječ unutar setName () za upućivanje na varijablu klase. Da biste saznali više o ovoj ključnoj riječi, posjetite Javu ovu ključnu riječ.
Napomena : Klase i sučelja ne možemo proglasiti privatnima u Javi. Međutim, ugniježđene klase mogu se proglasiti privatnima. Da biste saznali više, posjetite Java ugniježđenu i unutarnju klasu.
Modifikator zaštićenog pristupa
Kad se deklariraju metode i članovi podataka protected
, možemo im pristupiti u istom paketu, kao i iz potklasa. Na primjer,
class Animal ( // protected method protected void display() ( System.out.println("I am an animal"); ) ) class Dog extends Animal ( public static void main(String() args) ( // create an object of Dog class Dog dog = new Dog(); // access protected method dog.display(); ) )
Izlaz :
Ja sam životinja
U gornjem primjeru imamo zaštićenu metodu nazvanu display()
unutar klase Animal. Klasu Animal nasljeđuje klasa Dog. Da biste saznali više o nasljeđivanju, posjetite Java nasljeđivanje.
Zatim smo stvorili objektnog psa klase Pas. Koristeći objekt pokušali smo pristupiti zaštićenoj metodi roditeljske klase.
Budući da se zaštićenim metodama može pristupiti iz klase podređenih, moći ćemo pristupiti metodi klase Animal iz klase Dog.
Napomena : Ne možemo deklarirati klase ili sučelja protected
u Javi.
Modifikator javnog pristupa
Kada se deklariraju metode, varijable, klase i tako dalje public
, tada im možemo pristupiti s bilo kojeg mjesta. Modifikator javnog pristupa nema ograničenje opsega. Na primjer,
// Animal.java file // public class public class Animal ( // public variable public int legCount; // public method public void display() ( System.out.println("I am an animal."); System.out.println("I have " + legCount + " legs."); ) ) // Main.java public class Main ( public static void main( String() args ) ( // accessing the public class Animal animal = new Animal(); // accessing the public variable animal.legCount = 4; // accessing the public method animal.display(); ) )
Izlaz :
Ja sam životinja. Imam 4 noge.
Ovdje,
- Javnoj klasi Životinja pristupa se iz glavne klase.
- Javnoj varijabli legCount pristupa se iz klase Main.
- Javnoj metodi
display()
pristupa se iz klase Main.
Modifikatori pristupa sažeti u jednoj slici

Modifikatori pristupa uglavnom se koriste za inkapsulaciju. Mogu vam pomoći da kontroliramo koji dio programa može pristupiti članovima razreda. Tako se može spriječiti zlouporaba podataka. Da biste saznali više o enkapsulaciji, posjetite Java Encapsulation.