logo

Publiskā vs privātā Java

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:

    Augstākais līmenis:Šajā līmenī mēs varam izmantot tikai a publiski Dalībnieka līmenis:Šajā līmenī mēs varam izmantot publisks, privāts, aizsargāts un pakete-privāts (ja mēs neizmantojam skaidru modifikatoru, to sauc par pakotnes privātu).

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
Publiskā vs privātā 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).

Publiskā vs privātā Java

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.

Publiskā vs privātā Java

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:

Publiskā vs privātā Java

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
Publiskā vs privātā Java

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.