logo

Piekļūstiet modifikatoriem Java

  1. Privātās piekļuves pārveidotājs
  2. Privātā konstruktora loma
  3. Noklusējuma piekļuves pārveidotājs
  4. Aizsargātas piekļuves modifikators
  5. Publiskās piekļuves pārveidotājs
  6. Piekļuves pārveidotājs ar metodes ignorēšanu

Java ir divu veidu modifikatori: piekļuves modifikatori un nepiekļuves modifikatori .

Java piekļuves modifikatori norāda lauka, metodes, konstruktora vai klases pieejamību vai tvērumu. Mēs varam mainīt lauku, konstruktoru, metožu un klases piekļuves līmeni, piemērojot tam piekļuves modifikatoru.

Ir četri Java piekļuves modifikatoru veidi:

    Privāts: privātā modifikatora piekļuves līmenis ir tikai klasē. Tam nevar piekļūt no ārpuses.Noklusējums: noklusējuma modifikatora piekļuves līmenis ir tikai pakotnē. Tam nevar piekļūt no ārpuses iepakojuma. Ja nenorādīsit nekādu piekļuves līmeni, tas būs noklusējuma līmenis.Aizsargāts: aizsargātā modifikatora piekļuves līmenis ir paketē un ārpus tās, izmantojot bērnu klasi. Ja neveidojat bērnu klasi, tai nevar piekļūt no ārpuses.Publisks: Publiskā modifikatora piekļuves līmenis ir visur. Tam var piekļūt gan no klases, gan ārpus klases, gan komplektā, gan ārpus pakotnes.

Ir daudz nepiekļuves modifikatoru, piemēram, statiski, abstrakti, sinhronizēti, vietējie, mainīgie, pārejoši utt. Šeit mēs apgūsim tikai piekļuves modifikatorus.


Izpratne par Java piekļuves modifikatoriem

Sapratīsim Java piekļuves modifikatorus, izmantojot vienkāršu tabulu.

Piekļuves pārveidotājsklases ietvarosiepakojumāārējais iepakojums tikai pa apakšklasēmārējais iepakojums
Privāts UNNNN
Noklusējums UNUNNN
Aizsargāts UNUNUNN
Publisks UNUNUNUN

1) Privāts

Privātās piekļuves modifikators ir pieejams tikai klasē.

linux faili

Vienkāršs privātās piekļuves pārveidotāja piemērs

Šajā piemērā mēs esam izveidojuši divas klases A un Vienkāršā. Klase satur privāto datu dalībnieku un privāto metodi. Mēs piekļūstam šiem privātajiem dalībniekiem no ārpuses, tāpēc ir radusies kompilēšanas laika kļūda.

 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 } } 

Privātā konstruktora loma

Ja kādu klases konstruktoru padarāt privātu, šīs klases gadījumu nevar izveidot ārpus klases. Piemēram:

 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 } } 

Piezīme. Klase nevar būt privāta vai aizsargāta, izņemot ligzdotu klasi.


2) Noklusējums

Ja neizmantojat nevienu modifikatoru, tas tiek uzskatīts par noklusējuma pēc noklusējuma. Noklusējuma modifikators ir pieejams tikai pakotnē. Tam nevar piekļūt no ārpuses iepakojuma. Tas nodrošina lielāku pieejamību nekā privāts. Taču tas ir vairāk ierobežojošs nekā aizsargāts un publisks.

Linux $home

Noklusējuma piekļuves pārveidotāja piemērs

Šajā piemērā mēs esam izveidojuši divas pakotnes pack un mypack. Mēs piekļūstam A klasei ārpus tās pakotnes, jo A klase nav publiska, tāpēc tai nevar piekļūt ārpus pakotnes.

 //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 } } 

Iepriekš minētajā piemērā A klases tvērums un tās metode msg() ir noklusējuma vērtība, tāpēc tai nevar piekļūt ārpus pakotnes.


3) Aizsargāts

The aizsargātas piekļuves modifikators ir pieejams iepakojumā un ārpus iepakojuma, bet tikai mantojot.

Aizsargāto piekļuves modifikatoru var lietot datu dalībniekam, metodei un konstruktoram. To nevar lietot klasē.

Tas nodrošina lielāku pieejamību nekā noklusējuma modifikators.

Aizsargātas piekļuves modifikatora piemērs

Šajā piemērā mēs esam izveidojuši divas pakotnes pack un mypack. A klases iepakojuma pakotne ir publiska, tāpēc tai var piekļūt ārpus pakotnes. Bet šīs pakotnes msg metode ir deklarēta kā aizsargāta, tāpēc tai var piekļūt no ārpuses tikai mantojuma veidā.

 //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) Publisks

The publiskās piekļuves pārveidotājs ir pieejams visur. Tam ir visplašākā darbības joma starp visiem citiem modifikatoriem.

Publiskās piekļuves pārveidotāja piemērs

gulēt javascript
 //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 

Java piekļuves modifikatori ar metodes ignorēšanu

Ja ignorējat kādu metodi, ignorētā metode (t.i., deklarēta apakšklasē) nedrīkst būt ierobežojošāka.

 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(); } } 

Noklusējuma modifikators ir vairāk ierobežojošs nekā aizsargāts. Tāpēc ir kompilēšanas laika kļūda.