logo

Verejná vs súkromná Java

v Jave verejnosti a súkromnéKľúčové slová ktoré sú známe ako an modifikátor prístupu alebo špecifikátor . Obmedzuje rozsah alebo prístupnosť triedy, konštruktér , premenné , metóda s a dátovými členmi. Závisí to od toho, ktoré sa aplikuje. Java poskytuje štyri typy modifikátorov prístupu: verejné, súkromné, chránené a predvolená . Ale v tejto časti budeme diskutovať iba o dvoch verejných a súkromných a tiež o rozdiel medzi verejným a súkromným špecifikátorom prístupu s príkladom.

Modifikátory prístupu riadia, či iné triedy môžu použiť konkrétne pole alebo vyvolať konkrétnu metódu. Java poskytuje dve úrovne kontroly prístupu:

    Najvyššia úroveň:Na tejto úrovni môžeme použiť iba a verejnosti Členská úroveň:Na tejto úrovni môžeme použiť verejné, súkromné, chránené a balík-súkromný (ak nepoužívame žiadny explicitný modifikátor, je známy ako package-private).

Nasledujúca tabuľka zobrazuje úroveň prístupu pre členov povolenú verejnými a súkromnými modifikátormi.

konštruktor pythonu
Verejná vs súkromná Java

Stále nie sú jasné rozdiely medzi týmito dvoma? Dovoľte mi ukázať vám obrázok, ktorý ukazuje, ako úrovne prístupu ovplyvňujú viditeľnosť. Na nasledujúcom obrázku sú uvedené dva balíky p1 a p2 . Každý balík obsahuje dve triedy Demo1 a Demo2 (v balení p1), a Demo3 a Demo4 (v balení p2).

Verejná vs súkromná Java

Nasledujúca tabuľka popisuje viditeľnosť tried, ak triedy jednu po druhej nastavíme ako verejné a súkromné. Na obrázku vyššie je Demo1 jedinou triedou, ktorá je viditeľná pre každý modifikátor prístupu.

Verejná vs súkromná Java

Poďme si to podrobne rozobrať.

Modifikátor verejného prístupu

Dá sa špecifikovať pomocou verejnosti kľúčové slovo. Jeho rozsah alebo dostupnosť je najširšia spomedzi ostatných špecifikátorov prístupu. Premenné, triedy a metódy deklarované ako verejné sú dostupné odkiaľkoľvek v programe. Nestanovuje obmedzenia na rozsah členov s verejnými údajmi. Ak metódy a triedy vyhlásime za verejné, porušujú aj princíp o zapuzdrenie . Môžeme ho použiť aj s triedami najvyššej úrovne.

Použime špecifikátor súkromného prístupu v a Java program pre lepšie pochopenie.

Demo1.java

ak a inak v bash
 package p1; public class Demo1 { public void show() { System.out.println('Javatpoint'); } } 

Demo2.java

 package p2; import p1.*; class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); obj.show(); } } 

Výkon

 Javatpoint 

Modifikátor súkromného prístupu

Je opakom verejného modifikátora. Dá sa špecifikovať pomocou súkromné kľúčové slovo, za ktorým nasleduje názov triedy (aplikuje sa len na vnorené triedy) alebo názov metódy alebo údajový člen. Špecifikátor súkromného prístupu nemôžeme použiť s triedami najvyššej úrovne resp rozhrania . K premenným, metódam a triedam deklarovaným ako súkromné ​​je možné pristupovať iba v triede, v ktorej sú deklarované, alebo dedením rodičovských tried. Je to najobmedzenejší špecifikátor prístupu v Jave. Je to vysoká forma zapuzdrenia.

  • Nemôžeme prepísať metódy, ktoré sú deklarované ako súkromné.
  • Ak použijeme modifikátor private s konštruktorom, vyhneme sa tomu, aby bol podtriedený.
  • Skryje triedy pred ostatnými triedami v rámci toho istého balík .

Pre lepšie pochopenie použime špecifikátor súkromného prístupu v programe Java.

front a prioritný front v jazyku Java

V nasledujúcom príklade sme deklarovali dve triedy: Demo1 a Demo2. V triede Demo1 sme definovali metódu šou() ako súkromné. Trieda Demo2 obsahuje metódu main(), v ktorej sme vytvorili objekt triedy Demo1. Potom sa pokúšame o prístup k súkromnej metóde triedy Demo1 z triedy Demo2, čo nie je možné. Napriek tomu program spustíme, aby sme zistili, akú chybu zobrazuje.

 class Demo1 { //defining method as private private void show() { System.out.println('Javatpoint'); } } public class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); //trying to access private method of the class Demo1 obj.show(); } } 

Keď spustíme vyššie uvedený program, zobrazí sa nasledujúca chyba:

Verejná vs súkromná Java

Rozdiel medzi špecifikátorom verejného a súkromného prístupu v jazyku Java

Hlavným rozdielom medzi verejnými a súkromnými modifikátormi je ich viditeľnosť. Java kategorizuje viditeľnosť pre členov triedy nasledovne:

  • Podtriedy v rovnakom balíku
  • Nepodtriedy v tom istom balíku
  • Podtriedy v rôznych balíkoch
  • Triedy nie sú v rovnakom balíku ani podtriedy
Verejná vs súkromná Java

Ktorý by sme mali použiť?

Modifikátor verejného prístupu by sme mali použiť, ak chceme metódu alebo vlastnosť zviditeľniť odkiaľkoľvek, z iných tried a inštancií objektu. Ak chcete, aby bola metóda alebo vlastnosť viditeľná iba v jej vlastnej triede, použite modifikátor súkromného prístupu. Vyhnite sa verejným poliam s výnimkou konštánt.