access modifiers java tutorial with examples
Овај видео водич објашњава шта су модификатори приступа у Јави и како се користе подразумевани, јавни, заштићени и приватни модификатори приступа помоћу примера:
У Јави имамо класе и објекте. Ове класе и објекти су садржани у пакету. Поред тога, класе могу имати угнежђене класе, методе, променљиве итд. Како је Јава објектно оријентисани програмски језик, морамо следити енкапсулацију у којој скривамо нежељене детаље.
Јава нуди ентитете назване „Модификатори приступа или спецификатори приступа“ који нам помажу да ограничимо опсег или видљивост пакета, класе, конструктора, метода, променљивих или других чланова података. Ови модификатори приступа су такође позвани „Спецификатори видљивости“.
Коришћењем спецификатора приступа, одређеном методу класе или променљивој може се ограничити приступ или сакрити од осталих класа.
=> Овде проверите СВЕ Јава туторијале.
најбоље место за преузимање мп3 за андроид
Шта ћете научити:
- Видео водич за модификаторе приступа у Јави
- Приступити модификаторима у Јави
- Врсте модификатора приступа у Јави
- Закључак
Видео водич за модификаторе приступа у Јави
Приступити модификаторима у Јави
Спецификатори приступа такође одређују којим члановима података (методама или пољима) класе могу да приступе други чланови података класа или пакета итд. Да би се осигурала енкапсулација и поновна употреба, ови спецификатори / модификатори приступа су саставни део објектно оријентисаног програмирања.
Модификатори у Јави су два типа:
# 1) Модификатори приступа
Модификатори приступа у Јави омогућавају нам да подесимо опсег или доступност или видљивост члана података било да је то поље, конструктор, класа или метода.
# 2) Модификатори који немају приступ
Јава такође нуди не-приступне спецификаторе који се користе са класама, променљивим, методама, конструкторима итд. Не-приступни специфификатори / модификатори дефинишу понашање ентитета у ЈВМ-у.
Неки од не-приступних специфификатора / модификатора у Јави су:
- статички
- коначни
- апстрактан
- пролазан
- испарљив
- синхронизовано
- домородац
У нашим ранијим водичима покривали смо статичне, синхронизоване и променљиве кључне речи. Покриваћемо остале модификаторе који немају приступ у нашим будућим водичима, јер они превазилазе опсег овог водича.
Врсте модификатора приступа у Јави
Јава нуди четири врсте спецификатора приступа које можемо користити са класама и другим ентитетима.
Су:
# 1) Подразумевано: Кад год није наведен одређени ниво приступа, претпоставља се да је „подразумеван“. Опсег подразумеваног нивоа је унутар пакета.
# 2) Јавно: Ово је најчешћи ниво приступа и кад год се спецификатор јавног приступа користи са ентитетом, том одређеном ентитету се може приступити изнутра или изван класе, унутар или изван пакета итд.
# 3) Заштићено: Заштићени ниво приступа има опсег који је унутар пакета. Заштићеном ентитету је доступан и изван пакета путем наслеђене класе или подређене класе.
# 4) Приватно: Када је ентитет приватан, том ентитету се не може приступити изван класе. Приватном ентитету може се приступити само унутар класе.
Модификаторе приступа можемо сумирати у следећој табели.
Спецификатор приступа | Инсиде Цласс | Унутрашњи пакет | Подкласа вањског пакета | Спољни пакет |
---|---|---|---|---|
Приватни | да | Немој | Немој | Немој |
Уобичајено | да | да | Немој | Немој |
Заштићено | да | да | да | Немој |
Јавно | да | да | да | да |
Затим ћемо детаљно разговарати о сваком од ових спецификатора приступа.
Подразумеване спецификације приступа
Подразумевани модификатор приступа у Јави нема одређену кључну реч. Кад год модификатор приступа није наведен, претпоставља се да је подразумевани. Ентитети попут класа, метода и променљивих могу имати подразумевани приступ.
Подразумевана класа је доступна унутар пакета, али није доступна изван пакета, тј. Све класе унутар пакета у којима је дефинисана подразумевана класа могу приступити овој класи.
Слично томе, подразумевани метод или променљива су такође доступни унутар пакета у којем су дефинисани, а не изван пакета.
Програм у наставку приказује подразумевани модификатор приступа у Јави.
class BaseClass { void display() //no access modifier indicates default modifier { System.out.println('BaseClass::Display with 'dafault' scope'); } } class Main { public static void main(String args()) { //access class with default scope BaseClass obj = new BaseClass(); obj.display(); //access class method with default scope } }
Излаз:
У горњем програму имамо класу и метод унутар ње без икаквог модификатора приступа. Стога и приказ класе и метода има задати приступ. Тада видимо да у методи можемо директно креирати објекат класе и позвати методу.
Модификатор јавног приступа
Класи или методи или пољу података наведеном као „јавно“ може се приступити из било које класе или пакета у Јава програму. Јавни ентитет је доступан унутар пакета, као и изван пакета. Генерално, модификатор јавног приступа је модификатор који уопште не ограничава ентитет.
class A { public void display() { System.out.println('SoftwareTestingHelp!!'); } } class Main { public static void main(String args()) { A obj = new A (); obj.display(); } }
Излаз:
Спецификатор заштићеног приступа
Спецификатор заштићеног приступа омогућава приступ ентитетима кроз поткласе класе у којој је ентитет декларисан. Није важно да ли је класа у истом пакету или у другом пакету, али све док је класа која покушава да приступи заштићеном ентитету подкласа ове класе, ентитет је доступан.
Имајте на уму да класа и интерфејс не могу бити заштићени, тј. Не можемо применити заштићене модификаторе на класе и интерфејсе.
Модификатор заштићеног приступа обично се користи у односима родитеља и детета.
Програм у наставку приказује употребу модификатора заштићеног приступа у Јави.
//A->B->C = class hierarchy class A { protected void display() { System.out.println('SoftwareTestingHelp'); } } class B extends A {} class C extends B {} class Main{ public static void main(String args()) { B obj = new B(); //create object of class B obj.display(); //access class A protected method using obj C cObj = new C(); //create object of class C cObj.display (); //access class A protected method using cObj } }
Излаз:
Модификатор приватног приступа
„Приватни“ модификатор приступа је онај који има најнижи ниво приступачности. Методе и поља која су декларисана као приватна нису доступна изван класе. Они су доступни само у класи чији су чланови ови приватни ентитети.
Имајте на уму да приватни ентитети нису чак видљиви ни за подкласе класе. Модификатор приватног приступа осигурава енкапсулацију у Јави.
како отворити .епс датотеку у оперативном систему Виндовс 10
Неке тачке које треба напоменути у вези са модификатором приватног приступа.
- Модификатор приватног приступа не може се користити за класе и интерфејсе.
- Опсег приватних ентитета (метода и променљивих) ограничен је на класу у којој су декларисани.
- Класа са приватним конструктором не може створити објекат класе ни са једног другог места попут главне методе. (Више детаља о приватним конструкторима објашњено је у нашем ранијем водичу).
Испод наведени програм Јава користи Модификатор приватног приступа.
class TestClass{ //private variable and method private int num=100; private void printMessage(){System.out.println('Hello java');} } public class Main{ public static void main(String args()){ TestClass obj=new TestClass(); System.out.println(obj.num);//try to access private data member - Compile Time Error obj.printMessage();//Accessing private method - Compile Time Error } }
Излаз:
Горњи програм даје грешку при компилацији јер покушавамо да приступимо члановима приватних података помоћу објекта класе.
Али постоји метода за приступ променљивама приватних чланова. Овај метод користи гетере и постављаче у Јави. Дакле, пружамо методу јавног добијања у истој класи у којој је приватна променљива декларисана тако да геттер може прочитати вредност приватне променљиве.
Слично томе, пружамо метод јавног постављача који нам омогућава да поставимо вредност за приватну променљиву.
Следећи Јава програм демонстрира употребу метода гетера и постављача за приватне променљиве у Јави.
class DataClass { private String strname; // getter method public String getName() { return this.strname; } // setter method public void setName(String name) { this.strname= name; } } public class Main { public static void main(String() main){ DataClass d = new DataClass(); // access the private variable using the getter and setter d.setName('Java Programming'); System.out.println(d.getName()); } }
Излаз:
Горњи програм има класу са променљивом приватног низа. Пружамо јавни метод члана гетНаме који враћа вредност приватне променљиве. Такође пружамо јавну методу сетНаме у класи која узима Стринг као аргумент и додељује га приватној променљивој.
Како су обе методе јавне, лако им можемо приступити помоћу објекта класе. На овај начин можемо превазићи грешку компилације која се појављује сваки пут када покушавамо да приступимо члановима приватних података класе.
Често постављана питања
П # 1) Колико Модификатора приступа постоји на Јави?
Одговор: Јава нуди четири модификатора, тј. Подразумевани, јавни, заштићени и приватни.
П # 2) Шта су модификатори приступа и не-приступни модификатори у Јави?
Одговор: Модификатори приступа дефинишу видљивост или опсег програмског ентитета попут класе или методе, променљиве или конструктора. Модификатори који немају приступ дефинишу понашање ентитета. На пример, синхронизовани метод или блок указује на то да може радити у окружењу са више нити, коначна променљива указује на то да је константа.
П # 3) Зашто су важни спецификатори приступа?
Одговор: Модификатори одређују која класа може приступити којим другим класама или методама или променљивим. Коришћењем спецификатора приступа можемо ограничити приступ различитим класама, методама, конструкторима и променљивим, а такође осигурати инкапсулацију и поновну употребу Јава ентитета.
П # 4) Који се модификатори не користе за класу?
Одговор: Заштићени и приватни модификатори се не користе за класу.
П # 5) Шта су модификатори без приступа?
Одговор: Модификатори који дефинишу понашање ентитета попут класе, методе или променљивих са којима су повезани су модификатори који немају приступ. Као што име говори, они не одређују приступ. Јава нуди разне модификаторе који немају приступ, попут статичких, коначних, синхронизованих, променљивих, апстрактних итд.
Више о модификаторима видљивости
Јава нуди много модификатора за приступ променљивој, методама и конструкторима.
У Јави постоје 4 врсте променљивих приступа:
- Приватни
- Јавно
- Уобичајено
- Заштићено
# 1) Приватно
Ако је променљива декларисана као приватна, тада јој се може приступити у класи. Ова променљива неће бити доступна изван разреда. Дакле, спољни чланови не могу приступити приватним члановима.
Белешка: Класе и интерфејси не могу бити приватни.
# 2) Јавно
бесплатно преузимање апликације иоутубе то мп3 цонвертер
Методама / променљивим са јавним модификаторима могу да приступе све остале класе у пројекту.
# 3) Заштићено
Ако је променљива декларисана као заштићена, тада јој се може приступити у истим класама пакета и подкласи било ког другог пакета.
Белешка: Модификатор заштићеног приступа не може се користити за класу и интерфејсе.
# 4) Подразумевани модификатор приступа
Ако је променљива / метода дефинисана без било какве кључне речи модификатора приступа, тада ће то имати задати приступ модификатору.
Модификатори приступа | Видљивост |
---|---|
Јавно | Видљиво свим часовима. |
Заштићено | Видљиво класама са у пакету и поткласама другог пакета. |
Нема модификатора приступа (подразумевано) | Видљиво часовима са пакетом |
приватни | Видљиво са у разреду. Није доступан изван разреда. |
Демо класа:
class AccessModifiersDemo { private int empsalaray ; public String empName; private void calculateSalary() { System.out.println('insid methodone'); } public String printEmpName(String empName ) { this.empName=empName; return empName; } }
Приступ члановима одељења у другом одељењу:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); accessobj.calculateSalary(); } }
Излаз:
Приступ јавним члановима:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); System.out.println(accessobj.printEmpName('Bobby')); } }
Излаз:
Бобби
Важне тачке:
- Спецификатори приступа дефинишу видљивост класе.
- Ако није наведена ниједна кључна реч, то је подразумевани модификатор приступа.
- Четири модификатора у Јави укључују јавни, приватни, заштићени и подразумевани.
- Приватне и заштићене кључне речи не могу се користити за класе и интерфејсе.
Закључак
У овом упутству детаљно смо истражили Модификаторе приступа у Јави. Јава нуди четири врсте модификатора приступа или спецификатора видљивости, тј. Подразумевани, јавни, приватни и заштићени. Подразумевани модификатор није повезан са било којом кључном речи.
Када класа или метода или променљива немају придружени спецификатор приступа, претпостављамо да има подразумевани приступ. Модификатор јавног приступа омогућава приступ свему, било унутар или изван класе или пакета. Не постоји ограничење приступа у случају јавног модификатора.
Спецификатор заштићене видљивости омогућава приступ само поткласама које наслеђују класу у којој су декларисани заштићени чланови. Модификатор приватног приступа омогућава најмању доступност члановима приватних података да буде доступан само унутар класе.
Модификатори ограничавају опсег чланова података попут класа, конструктора, метода и променљивих и дефинишу ограничење којим класама или пакетима могу да приступе. Спецификатори приступа подстичу енкапсулацију и поновну употребу у Јави. Имајте на уму да класе и интерфејс не могу бити заштићени или приватни.
=> Посетите овде да бисте научили Јаву из нуле.
Препоручено читање
- Водич за Јава рефлексију са примерима
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- Увод у програмски језик Јава - Видео водич
- Водич за Јава СВИНГ: Контејнери, компоненте и руковање догађајима
- Јава Стринг са Стринг Буффер-ом и Стринг Буилдер Туториал
- Примена Јава-а: Стварање и извршавање Јава ЈАР датотеке
- Јава виртуелна машина: како ЈВМ помаже у покретању Јава апликације
- Водич за Јава Цоллецтионс Фрамеворк (ЈЦФ)