- Privačios prieigos modifikatorius
- Privataus konstruktoriaus vaidmuo
- Numatytasis prieigos modifikatorius
- Apsaugos prieigos modifikatorius
- Viešosios prieigos modifikatorius
- Prieigos modifikatorius su metodo nepaisymu
„Java“ yra dviejų tipų modifikatoriai: prieigos modifikatoriai ir neprieigos modifikatoriai .
„Java“ prieigos modifikatoriai nurodo lauko, metodo, konstruktoriaus arba klasės pasiekiamumą arba apimtį. Mes galime pakeisti laukų, konstruktorių, metodų ir klasės prieigos lygį, taikydami prieigos modifikatorių.
Yra keturi Java prieigos modifikatorių tipai:
Yra daug neprieigos modifikatorių, tokių kaip statinis, abstraktus, sinchronizuotas, vietinis, nepastovus, trumpalaikis ir kt. Čia mes išmoksime tik prieigos modifikatorius.
„Java“ prieigos modifikatorių supratimas
Supraskime „Java“ prieigos modifikatorius naudodami paprastą lentelę.
Prieigos modifikatorius | klasės viduje | pakuotėje | išorinis paketas tik pagal poklasį | išorinė pakuotė |
---|---|---|---|---|
Privatus | IR | N | N | N |
Numatytas | IR | IR | N | N |
Apsaugotas | IR | IR | IR | N |
Viešas | IR | IR | IR | IR |
1) Privatus
Privačios prieigos modifikatorius pasiekiamas tik klasėje.
java pasirinkimo rūšiavimas
Paprastas privačios prieigos modifikatoriaus pavyzdys
Šiame pavyzdyje sukūrėme dvi klases A ir Paprasta. Klasėje yra privačių duomenų narys ir privatus metodas. Prie šių privačių narių pasiekiame ne iš klasės, todėl įvyko kompiliavimo laiko klaida.
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 } }
Privataus konstruktoriaus vaidmuo
Jei bet kurį klasės konstruktorių padarysite privatų, negalėsite sukurti tos klasės egzemplioriaus iš klasės ribų. Pavyzdžiui:
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 } }
Pastaba: klasė negali būti privati ar apsaugota, išskyrus įdėtąją klasę.
2) Numatytoji
Jei nenaudojate jokio modifikatoriaus, jis traktuojamas kaip numatytas pagal nutylėjimą. Numatytasis modifikatorius pasiekiamas tik pakete. Jo negalima pasiekti iš pakuotės išorės. Tai suteikia daugiau prieinamumo nei privatus. Tačiau tai labiau ribojanti nei saugoma ir vieša.
masyvo pjaustymo java
Numatytosios prieigos modifikatoriaus pavyzdys
Šiame pavyzdyje sukūrėme du paketus ir mypack. Mes pasiekiame A klasę ne iš jos paketo, nes A klasė nėra vieša, todėl jos negalima pasiekti iš paketo ribų.
//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 } }
Aukščiau pateiktame pavyzdyje A klasės ir jos metodo msg() apimtis yra numatytoji, todėl jos negalima pasiekti iš paketo ribų.
3) Apsaugotas
The apsaugotos prieigos modifikatorius yra prieinama pakuotėje ir už pakuotės ribų, bet tik paveldint.
Apsaugotas prieigos modifikatorius gali būti taikomas duomenų nariui, metodui ir konstruktoriui. Jo negalima taikyti klasėje.
Tai suteikia daugiau prieinamumo nei numatytasis modifikatorius.
kaip pervardyti katalogą linux
Apsaugotos prieigos modifikatoriaus pavyzdys
Šiame pavyzdyje sukūrėme du paketus ir mypack. A klasės pakuotės paketas yra viešas, todėl jį galima pasiekti iš pakuotės ribų. Tačiau šio paketo msg metodas yra paskelbtas kaip apsaugotas, todėl jį galima pasiekti iš klasės ribų tik per paveldėjimą.
//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) Viešas
The viešosios prieigos modifikatorius yra prieinama visur. Ji turi plačiausią taikymo sritį tarp visų kitų modifikatorių.
Viešosios prieigos modifikatoriaus pavyzdys
//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“ prieigos modifikatoriai su metodo nepaisymu
Jei nepaisote bet kurio metodo, nepaisytas metodas (t. y. paskelbtas poklasyje) neturi būti labiau ribojantis.
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(); } }
Numatytasis modifikatorius yra labiau ribojantis nei apsaugotas. Štai kodėl yra kompiliavimo laiko klaida.