logo

Modifikátory prístupu v jazyku Java

  1. Modifikátor súkromného prístupu
  2. Úloha súkromného konštruktéra
  3. Predvolený modifikátor prístupu
  4. Chránený modifikátor prístupu
  5. Modifikátor verejného prístupu
  6. 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:

    Súkromné: Úroveň prístupu súkromného modifikátora je iba v rámci triedy. Nedá sa k nemu dostať mimo triedy.Predvolené: Úroveň prístupu predvoleného modifikátora je len v rámci balíka. Nedá sa k nemu dostať mimo balíka. Ak nešpecifikujete žiadnu úroveň prístupu, bude to predvolená.Chránené: Úroveň prístupu chráneného modifikátora je v rámci balíka a mimo balíka prostredníctvom podradenej triedy. Ak triedu dieťaťa neurobíte, nebude k nej prístup mimo balíka.Verejné: Úroveň prístupu verejného modifikátora je všade. Dá sa k nemu pristupovať v rámci triedy, mimo triedy, v rámci balíka a mimo balíka.

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ístupuv rámci triedyv rámci baleniavonkajší balík len podľa podtriedyvonkajší balík
Súkromné ANNN
Predvolené AANN
Chránené AAAN
Verejné AAAA

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.