V Javi, javnosti in zasebno so ključne besede ki so znani kot an modifikator dostopa oz specifikator . Omejuje obseg ali dostopnost razreda, konstruktor , spremenljivke , metoda s in podatkovni člani. Odvisno od tega, kateri se uporablja. Java nudi štiri vrste modifikatorjev dostopa: javno, zasebno, zaščiteno , in privzeto . Toda v tem razdelku bomo razpravljali le o dveh javnih in zasebnih ter razpravljali tudi o razlika med javnim in zasebnim specifikatorjem dostopa z zgledom.
Modifikatorji dostopa nadzorujejo, ali lahko drugi razredi uporabljajo določeno polje ali prikličejo določeno metodo. Java omogoča dve ravni nadzora dostopa:
Naslednja tabela prikazuje raven dostopa do članov, ki jo dovoljujejo javni in zasebni modifikatorji.
c++ par
Še vedno niste jasni razlike med obema? Naj vam pokažem sliko, ki prikazuje, kako ravni dostopa vplivajo na vidnost. Naslednja slika prikazuje dva paketa p1 in p2 . Vsak paket vsebuje dva razreda Demo1 in Demo2 (v paketu p1) in Demo3 in Demo4 (v paketu p2).
Naslednja tabela opisuje vidnost razredov, če vsakega posebej naredimo javne in zasebne. Na zgornji sliki je Demo1 edini razred, ki je viden za vsak modifikator dostopa.
Pogovorimo se o tem podrobno.
Modifikator javnega dostopa
Določite ga lahko z uporabo javnosti ključna beseda. Njegov obseg oziroma dostopnost je najširši med drugimi specifikatorji dostopa. Do spremenljivk, razredov in metod, ki so deklarirane kot javne, je mogoče dostopati od koderkoli v programu. Ne postavlja omejitev glede obsega članov javnih podatkov. Če metode in razrede razglasimo za javne, prav tako kršijo načelo enkapsulacija . Uporabljamo ga lahko tudi pri razredih najvišje ravni.
Uporabimo specifikator zasebnega dostopa v a Java program za boljše razumevanje.
Demo1.java
kakec
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(); } }
Izhod
Javatpoint
Modifikator zasebnega dostopa
Je nasprotje javnega modifikatorja. Določite ga lahko z uporabo zasebno ključna beseda, ki ji sledi ime razreda (uporablja se samo za ugnezdene razrede) ali ime metode ali podatkovni član. Specifikatorja zasebnega dostopa ne moremo uporabiti z vrhnjimi razredi oz vmesniki . Do spremenljivk, metod in razredov, ki so deklarirani kot zasebni, je mogoče dostopati samo v razredu, v katerem so deklarirani, ali z dedovanjem nadrejenih razredov. Je najbolj omejen specifikator dostopa v Javi. To je višinska oblika enkapsulacije.
kaj so velike in male črke v sql
- Ne moremo preglasiti metode, ki so deklarirane kot zasebne.
- Če s konstruktorjem uporabimo zasebni modifikator, se izognemo temu, da bi bil podrazred.
- Razrede skrije pred drugimi razredi v istem paket .
Za boljše razumevanje uporabimo specifikator zasebnega dostopa v programu Java.
V naslednjem primeru smo deklarirali dva razreda: Demo1 in Demo2. V razredu Demo1 smo definirali metodo pokaži() kot zasebno. Razred Demo2 vsebuje metodo main(), v kateri smo ustvarili objekt razreda Demo1. Po tem poskušamo dostopati do zasebne metode razreda Demo1 iz razreda Demo2, kar ni mogoče. Kljub temu bomo izvedli program, da vidimo, katero napako prikazuje.
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(); } }
Ko izvedemo zgornji program, prikaže naslednjo napako:
Razlika med javnim in zasebnim specifikatorjem dostopa v Javi
Glavna razlika med javnimi in zasebnimi modifikatorji je njihova vidnost. Java razvrsti vidnost za člane razreda na naslednji način:
- Podrazredi v istem paketu
- Nepodrazredi v istem paketu
- Podrazredi v različnih paketih
- Razredi niso niti v istem paketu niti podrazredi
Katerega naj uporabimo?
Če želimo narediti metodo ali lastnost vidno od koder koli, moramo uporabiti modifikator javnega dostopa, druge razrede in primerke predmeta. Uporabite modifikator zasebnega dostopa, če želite, da je metoda ali lastnost vidna samo v svojem razredu. Izogibajte se javnim poljem, razen konstantam.