- Privātās piekļuves pārveidotājs
- Privātā konstruktora loma
- Noklusējuma piekļuves pārveidotājs
- Aizsargātas piekļuves modifikators
- Publiskās piekļuves pārveidotājs
- 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:
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ājs | klases ietvaros | iepakojumā | ārējais iepakojums tikai pa apakšklasēm | ārējais iepakojums |
---|---|---|---|---|
Privāts | UN | N | N | N |
Noklusējums | UN | UN | N | N |
Aizsargāts | UN | UN | UN | N |
Publisks | UN | UN | UN | UN |
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.