- Modifikátor súkromného prístupu
- Úloha súkromného konštruktéra
- Predvolený modifikátor prístupu
- Chránený modifikátor prístupu
- Modifikátor verejného prístupu
- Modifikátor prístupu s prepisovaním metódy
V Jave sú dva typy modifikátorov: modifikátory prístupu a neprístupové modifikátory .
Modifikátory prístupu v jazyku Java špecifikujú dostupnosť alebo rozsah poľa, metódy, konštruktora alebo triedy. Úroveň prístupu polí, konštruktorov, metód a triedy môžeme zmeniť tak, že na ne použijeme modifikátor prístupu.
Existujú štyri typy modifikátorov prístupu Java:
Existuje mnoho neprístupových modifikátorov, ako sú statické, abstraktné, synchronizované, natívne, volatilné, prechodné atď. Tu sa naučíme len modifikátory prístupu.
Pochopenie Java Access Modifiers
Pochopme modifikátory prístupu v Jave jednoduchou tabuľkou.
Modifikátor prístupu | v rámci triedy | v rámci balenia | vonkajší balík len podľa podtriedy | vonkajší balík |
---|---|---|---|---|
Súkromné | A | N | N | N |
Predvolené | A | A | N | N |
Chránené | A | A | A | N |
Verejné | A | A | A | A |
1) Súkromné
Modifikátor súkromného prístupu je prístupný iba v rámci triedy.
java webové služby
Jednoduchý príklad modifikátora súkromného prístupu
V tomto príklade sme vytvorili dve triedy A a Simple. Trieda obsahuje súkromný dátový člen a súkromnú metódu. K týmto súkromným členom pristupujeme mimo triedy, takže sa vyskytla chyba pri kompilácii.
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 } }
Úloha súkromného konštruktéra
Ak nastavíte akýkoľvek konštruktor triedy ako súkromný, nemôžete vytvoriť inštanciu tejto triedy mimo triedy. Napríklad:
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 } }
Poznámka: Trieda nemôže byť súkromná alebo chránená okrem vnorenej triedy.
2) Predvolené
Ak nepoužijete žiadny modifikátor, považuje sa to za predvolená predvolene. Predvolený modifikátor je dostupný iba v rámci balíka. Nedá sa k nemu dostať mimo balíka. Poskytuje väčšiu dostupnosť ako súkromné. Je však viac obmedzujúci ako chránený a verejný.
ako vrátiť pole java
Príklad predvoleného modifikátora prístupu
V tomto príklade sme vytvorili dva balíčky pack a mypack. K triede A pristupujeme mimo jej balíka, keďže trieda A nie je verejná, takže k nej nie je možné pristupovať mimo balíka.
//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 } }
Vo vyššie uvedenom príklade je rozsah triedy A a jej metóda msg() predvolená, takže k nej nie je možné pristupovať mimo balíka.
3) Chránené
The modifikátor chráneného prístupu je prístupný v rámci balíka aj mimo neho, ale iba prostredníctvom dedenia.
Modifikátor chráneného prístupu možno použiť na dátový člen, metódu a konštruktor. Nedá sa použiť na triedu.
Poskytuje väčšiu dostupnosť ako predvolený modifikátor.
Príklad modifikátora chráneného prístupu
V tomto príklade sme vytvorili dva balíčky pack a mypack. Balík balíka triedy A je verejný, takže k nemu možno pristupovať mimo balíka. Metóda msg tohto balíka je však deklarovaná ako chránená, takže k nej možno pristupovať zvonku triedy iba prostredníctvom dedenia.
//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) Verejné
The modifikátor verejného prístupu je dostupná všade. Má najširší záber spomedzi všetkých ostatných modifikátorov.
Príklad modifikátora verejného prístupu
//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
Modifikátory prístupu Java s prepisovaním metódy
Ak prepisujete akúkoľvek metódu, prepísaná metóda (t. j. deklarovaná v podtriede) nesmie byť viac obmedzujúca.
inurl:.git/head
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(); } }
Predvolený modifikátor je viac obmedzujúci ako chránený. Preto sa vyskytla chyba pri kompilácii.