Java valodā, publiski un Privāts ir atslēgvārdi kas ir pazīstami kā an piekļuves modifikators vai precizētājs . Tas ierobežo klases tvērumu vai pieejamību, konstruktors , mainīgie , metodi s, un datu dalībnieki. Tas ir atkarīgs no tā, kurš tas tiek piemērots. Java nodrošina četru veidu piekļuves modifikatorus: publisks, privāts, aizsargāts , un noklusējuma . Bet šajā sadaļā mēs apspriedīsim tikai divus publiskos un privātos, kā arī apspriedīsim atšķirība starp publiskās un privātās piekļuves norādītāju ar piemēru.
Piekļuves modifikatori kontrolē, vai citas klases var izmantot noteiktu lauku vai izsaukt noteiktu metodi. Java nodrošina divus piekļuves kontroles līmeņus:
Nākamajā tabulā parādīts piekļuves līmenis dalībniekiem, ko atļauj publiskie un privātie modifikatori.
pēdējais atslēgvārds java
Joprojām nav skaidras atšķirības starp abiem? Ļaujiet man parādīt jums attēlu, kas parāda, kā piekļuves līmeņi ietekmē redzamību. Nākamajā attēlā parādīti divi iepakojumi p1 un p2 . Katrā iepakojumā ir divas klases Demo1 un Demo2 (iepakojumā p1) un Demo3 un Demo4 (iepakojumā p2).
Nākamajā tabulā ir aprakstīta klašu redzamība, ja nodarbības tiek padarītas publiskas un privātas pa vienai. Iepriekš redzamajā attēlā Demo1 ir vienīgā klase, kas ir redzama katram piekļuves modifikatoram.
Apspriedīsim to sīkāk.
Publiskās piekļuves pārveidotājs
To var norādīt, izmantojot publiski atslēgvārds. Tās darbības joma jeb pieejamība ir visplašākā starp citiem piekļuves specifikatoriem. Mainīgajiem, klasēm un metodēm, kas deklarētas kā publiskas, var piekļūt no jebkuras programmas vietas. Tas neuzliek ierobežojumus publisko datu dalībnieku lokam. Ja mēs pasludinām metodes un klases par publiskām, tās arī pārkāpj principu iekapsulēšana . Mēs to varam izmantot arī augstākā līmeņa klasēs.
Izmantosim privātās piekļuves norādītāju a Java programma labākai izpratnei.
Demo1.java
prioritārā rinda
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(); } }
Izvade
Javatpoint
Privātās piekļuves pārveidotājs
Tas ir pretējs publiskajam modifikatoram. To var norādīt, izmantojot Privāts atslēgvārds, kam seko klases nosaukums (tiek lietots tikai ligzdotām klasēm) vai metodes nosaukums vai datu dalībnieks. Mēs nevaram izmantot privātās piekļuves norādītāju ar augstākā līmeņa klasēm vai saskarnes . Mainīgajiem lielumiem, metodēm un klasēm, kas deklarētas kā privātas, var piekļūt tikai tajā klasē, kurā tie ir deklarēti, vai mantojot vecākklases. Tas ir visierobežotākais Java piekļuves specifikators. Tā ir augstuma iekapsulēšanas forma.
slēptās lietotnes
- Mēs nevaram ignorēt metodes, kas ir deklarētas kā privātas.
- Ja mēs izmantojam privāto modifikatoru ar konstruktoru, mēs izvairāmies no tā apakšklases.
- Tas slēpj klases no citām klasēm tajā pašā iepakojums .
Labākai izpratnei izmantosim privātās piekļuves specifikāciju Java programmā.
Nākamajā piemērā mēs esam deklarējuši divas klases: Demo1 un Demo2. Klasē Demo1 mēs esam definējuši metodi parādīt () kā privāts. Klase Demo2 satur metodi main(), kurā esam izveidojuši klases Demo1 objektu. Pēc tam mēs cenšamies piekļūt klases Demo1 privātajai metodei no klases Demo2, tas nav iespējams. Tomēr mēs izpildīsim programmu, lai redzētu, kura kļūda tā parāda.
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(); } }
Kad mēs izpildām iepriekš minēto programmu, tiek parādīta šāda kļūda:
Atšķirība starp publiskās un privātās piekļuves specifikāciju Java
Galvenā atšķirība starp publiskajiem un privātajiem modifikatoriem ir tā redzamība. Java klases dalībnieku redzamību kategorizē šādi:
- Apakšklases vienā paketē
- Neapakšklases vienā pakotnē
- Apakšklases dažādos iepakojumos
- Klases ne vienā paketē, ne apakšklasēs
Kuru mums vajadzētu izmantot?
Mums vajadzētu izmantot publiskās piekļuves modifikatoru, ja mēs vēlamies padarīt metodi vai rekvizītu redzamu no jebkuras vietas, citām objekta klasēm un gadījumiem. Izmantojiet privātās piekļuves modifikatoru, ja vēlaties, lai metode vai rekvizīts būtu redzams tikai savā klasē. Izvairieties no publiskiem laukiem, izņemot konstantes.