У овом упутству ћемо научити о Јава Аццесс Модификатору, његовим типовима и како их користити помоћу примера.
Шта су модификатори приступа?
У Јави се модификатори приступа користе за постављање приступачности (видљивости) класа, интерфејса, променљивих, метода, конструктора, чланова података и метода постављача. На пример,
class Animal ( public void method1() (… ) private void method2() (… ) )
У горњем примеру смо прогласили 2 методе: метход1 () и метход2 (). Ево,
- метход1 је
public
- То значи да му могу приступити друге класе. - метход2 је
private
- То значи да му друге класе не могу приступити.
Обратите пажњу на кључну реч public
и private
. То су модификатори приступа у Јави. Познати су и као модификатори видљивости.
Напомена : Не можете поставити модификатор приступа геттерских метода.
Врсте модификатора приступа
Пре него што научите о врстама модификатора приступа, обавезно се упознајте са Јава пакетима.
У Јави постоје четири кључне речи за модификаторе приступа и то су:
Модификатор | Опис |
Уобичајено | декларације су видљиве само унутар пакета (приватни пакет) |
Приватни | декларације су видљиве само унутар класе |
Заштићено | декларације су видљиве унутар пакета или свих поткласа |
Јавно | декларације су видљиве свуда |
Подразумевани модификатор приступа
Ако експлицитно не наведемо ниједан модификатор приступа за класе, методе, променљиве итд., Тада се подразумевано сматра подразумевани модификатор приступа. На пример,
package defaultPackage; class Logger ( void message()( System.out.println("This is a message"); ) )
Овде класа Логгер има задати модификатор приступа. А класа је видљива свим класама које припадају дефаултПацкаге пакету. Међутим, ако покушамо да користимо класу Логгер у другој класи изван дефаултПацкаге, добићемо грешку при компилацији.
Модификатор приватног приступа
Када су променљиве и методе декларисане private
, не може им се приступити изван класе. На пример,
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"; ) )
У горњем примеру, прогласили смо приватну променљиву именом и приватни метод именованом display()
. Када покренемо програм, добићемо следећу грешку:
Main.java:18: error: name has private access in Data d.name = "Programiz"; ^
Грешка је генерисана јер покушавамо да приступимо приватној променљивој и приватном методу класе Дата из класе Маин.
Можда се питате шта ако треба да приступимо тим приватним променљивим. У овом случају можемо користити методу гетера и постављача. На пример,
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()); ) )
Излаз :
Име је Програмиз
У горњем примеру имамо приватну променљиву која се зове наме. Да бисмо приступили променљивој из спољне класе, користили смо методе: getName()
и setName()
. Ове методе се у Јави називају геттер и сеттер.
Овде смо користили методу постављача ( setName()
) за додељивање вредности променљивој и методу гетера ( getName()
) за приступ променљивој.
Користили смо this
кључну реч унутар сетНаме () за упућивање на променљиву класе. Да бисте сазнали више о овој кључној речи, посетите Јаву ову кључну реч.
Напомена : У Јава-и не можемо прогласити класе и интерфејсе приватним. Међутим, угнежђене класе се могу прогласити приватним. Да бисте сазнали више, посетите Јава угнежђену и унутрашњу класу.
Модификатор заштићеног приступа
Када се декларишу методе и чланови података protected
, можемо им приступити у истом пакету, као и из поткласа. На пример,
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(); ) )
Излаз :
Ја сам животиња
У горњем примеру имамо заштићени метод назван display()
унутар класе Анимал. Класу Анимал наслеђује класа Дог. Да бисте сазнали више о наслеђивању, посетите Јава Наслеђивање.
Затим смо креирали објектног пса класе Дог. Користећи објекат покушали смо да приступимо заштићеном методу родитељске класе.
Пошто се заштићеним методама може приступити из подређених класа, методу класе Анимал можемо приступити из класе Дог.
Напомена : Не можемо пријавити класе или интерфејсе protected
у Јави.
Модификатор јавног приступа
Када се декларишу методе, променљиве, класе и тако даље public
, тада им можемо приступити са било ког места. Модификатор јавног приступа нема ограничење опсега. На пример,
// 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(); ) )
Излаз :
Ја сам животиња. Имам 4 ноге.
Ево,
- Јавној класи Животиња се приступа из главне класе.
- Јавној променљивој легЦоунт приступа се из класе Маин.
- Јавном методу
display()
се приступа из класе Маин.
Модификатори приступа сумирани у једној слици

Модификатори приступа углавном се користе за инкапсулацију. Могу да вам помогнем да контролишемо који део програма може да приступи члановима класе. Тако се може спречити злоупотреба података. Да бисте сазнали више о енкапсулацији, посетите Јава Енцапсулатион.