logo

Pasiekite modifikatorius Java

  1. Privačios prieigos modifikatorius
  2. Privataus konstruktoriaus vaidmuo
  3. Numatytasis prieigos modifikatorius
  4. Apsaugos prieigos modifikatorius
  5. Viešosios prieigos modifikatorius
  6. 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:

    Privatus: Privataus modifikatoriaus prieigos lygis yra tik klasėje. Jo negalima pasiekti iš klasės ribų.Numatytas: numatytojo modifikatoriaus prieigos lygis yra tik pakete. Jo negalima pasiekti iš pakuotės išorės. Jei nenurodysite jokio prieigos lygio, jis bus numatytasis.Apsaugotas: Apsaugoto modifikatoriaus prieigos lygis yra pakete ir už paketo ribų per antrinę klasę. Jei nesudarysite vaiko klasės, jos negalėsite pasiekti iš paketo ribų.Viešas: Viešojo modifikatoriaus prieigos lygis yra visur. Jį galima pasiekti iš klasės, už klasės, paketo ir už paketo ribų.

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 modifikatoriusklasės vidujepakuotėjeišorinis paketas tik pagal poklasįišorinė pakuotė
Privatus IRNNN
Numatytas IRIRNN
Apsaugotas IRIRIRN
Viešas IRIRIRIR

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.