logo

Käytä muokkauksia Javassa

  1. Yksityisen pääsyn muokkaaja
  2. Yksityisen rakentajan rooli
  3. Oletusarvoinen käyttöoikeusmuunnin
  4. Suojatun pääsyn muokkaaja
  5. Julkisen pääsyn muokkaaja
  6. Access Modifier menetelmän ohituksella

Javassa on kahdenlaisia ​​muuntajia: pääsyn muokkaajat ja ei-pääsyn muokkaajat .

Java-käyttöoikeudet määrittävät kentän, menetelmän, rakentajan tai luokan saavutettavuuden tai laajuuden. Voimme muuttaa kenttien, rakentajien, menetelmien ja luokan käyttöoikeustasoa käyttämällä siihen pääsyn muokkaajaa.

Java-käyttöoikeuksia on neljää tyyppiä:

    Yksityinen: Yksityisen muokkaajan käyttöoikeustaso on vain luokassa. Siihen ei pääse luokan ulkopuolelta.Oletus: Oletusmuuntimen käyttöoikeustaso on vain paketin sisällä. Siihen ei pääse käsiksi paketin ulkopuolelta. Jos et määritä käyttöoikeustasoa, se on oletusarvo.Suojattu: Suojatun muuntajan käyttöoikeustaso on paketin sisällä ja paketin ulkopuolella lapsiluokan kautta. Jos et luo lapsiluokkaa, siihen ei pääse käsiksi paketin ulkopuolelta.Julkinen: Julkisen muokkaajan käyttöoikeustaso on kaikkialla. Sitä pääsee käsiksi luokasta, luokan ulkopuolelta, paketista ja paketin ulkopuolelta.

On olemassa monia ei-pääsyn muokkaajia, kuten staattinen, abstrakti, synkronoitu, natiivi, haihtuva, ohimenevä jne. Tässä aiomme oppia vain pääsyn muokkaajat.


Java Accessin muokkaajien ymmärtäminen

Ymmärretään Java-käyttöoikeudet yksinkertaisella taulukolla.

Access Modifierluokan sisälläpaketin sisällävain ulkopakkaus alaluokittainulkopuolinen paketti
Yksityinen JANNN
Oletus JAJANN
Suojattu JAJAJAN
Julkinen JAJAJAJA

1) Yksityinen

Yksityisen pääsyn muokkaaja on käytettävissä vain luokassa.

lausunnon kattavuus

Yksinkertainen esimerkki yksityisen pääsyn muokkaajasta

Tässä esimerkissä olemme luoneet kaksi luokkaa A ja Simple. Luokka sisältää yksityisen datajäsenen ja yksityisen menetelmän. Käytämme näitä yksityisiä jäseniä luokan ulkopuolelta, joten käännösaikavirhe.

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

Yksityisen rakentajan rooli

Jos teet minkä tahansa luokan rakentajan yksityiseksi, et voi luoda kyseisen luokan esiintymää luokan ulkopuolelta. Esimerkiksi:

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

Huomautus: Luokka ei voi olla yksityinen tai suojattu paitsi sisäkkäinen luokka.


2) Oletus

Jos et käytä mitään muuntajaa, sitä käsitellään oletuksena oletuksena. Oletusmuuttaja on käytettävissä vain paketin sisällä. Siihen ei pääse käsiksi paketin ulkopuolelta. Se tarjoaa enemmän saavutettavuutta kuin yksityinen. Mutta se on enemmän rajoittava kuin suojattu ja julkinen.

kuinka muuntaa merkkijono java kokonaisluvuksi

Esimerkki oletusarvoisesta pääsyn muokkaajasta

Tässä esimerkissä olemme luoneet kaksi pakettia pack ja mypack. Käytämme A-luokkaa sen paketin ulkopuolelta, koska luokka A ei ole julkinen, joten siihen ei pääse käsiksi paketin ulkopuolelta.

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

Yllä olevassa esimerkissä luokan A ja sen menetelmän msg() laajuus on oletusarvoinen, joten sitä ei voida käyttää paketin ulkopuolelta.


3) Suojattu

The suojatun pääsyn muokkaaja on saatavilla pakkauksen sisällä ja sen ulkopuolella, mutta vain perinnön kautta.

Suojattua pääsyn muokkaajaa voidaan soveltaa datajäseneen, menetelmään ja konstruktoriin. Sitä ei voi käyttää luokassa.

Se tarjoaa enemmän käytettävyyttä kuin oletusmuuntaja.

Esimerkki suojatusta pääsyn muokkaajasta

Tässä esimerkissä olemme luoneet kaksi pakettia pack ja mypack. A-luokan pakkauspaketti on julkinen, joten siihen pääsee käsiksi paketin ulkopuolelta. Mutta tämän paketin msg-metodi on julistettu suojatuksi, joten siihen pääsee luokan ulkopuolelta vain perinnön kautta.

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

The julkisen pääsyn muokkaaja on saatavilla kaikkialla. Sillä on laajin kattavuus kaikista muista modifikaatioista.

Esimerkki julkisen pääsyn muokkaajasta

staattinen avainsana javassa
 //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 Access Modifiers Method Overriding

Jos ohitat minkä tahansa menetelmän, ohitettu menetelmä (eli alaluokassa ilmoitettu) ei saa olla rajoittavampi.

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

Oletusmuuttaja on enemmän rajoittava kuin suojattu. Tästä syystä on olemassa käännösaikavirhe.