Käytä muokkauksia Javassa

Käytä muokkauksia Javassa

Javassa käyttöoikeusmuuntimet ovat olennaisia ​​työkaluja, jotka määrittävät kuinka luokan jäseniä, kuten muuttujia, menetelmiä ja jopa itse luokkaa voidaan käyttää ohjelmamme muista osista.

Javassa on saatavilla neljän tyyppisiä käyttöoikeusmuutoksia: 

Access-Modifiers-in-Java-1Käytä muokkauksia Javassa

Yksityinen pääsyn muokkaaja

Yksityisen pääsyn muokkaaja määritetään avainsanalla yksityinen. Yksityisiksi ilmoitetut menetelmät tai datajäsenet ovat käytettävissä vain siinä luokassa, jossa ne on ilmoitettu.

Java
   class   Person     {      // private variable      private     String     name  ;      public     void     setName  (  String     name  )     {      this  .  name     =     name  ;     // accessible within class      }      public     String     getName  ()     {     return     name  ;     }   }   public     class   Geeks     {      public     static     void     main  (  String  []     args  )      {      Person     p     =     new     Person  ();      p  .  setName  (  'Alice'  );      // System.out.println(p.name); // Error: 'name'      // has private access      System  .  out  .  println  (  p  .  getName  ());      }   }   

Lähtö
Alice  

Selitys: Suora pääsy nimeen ei ole sallittu kapselointia pakottavan henkilön ulkopuolella.

Oletuskäytön muokkaus

Jos luokkametodille tai datajäsenelle ei ole määritetty pääsyoikeusmuuttajaa, sillä sanotaan olevan oletusarvoinen käyttöoikeusmuuttaja. Tämä tarkoittaa, että vain saman paketin luokat voivat käyttää sitä.

Java
   class   Car     {      String     model  ;     // default access   }   public     class   Main     {          public     static     void     main  (  String  []     args  ){          Car     c     =     new     Car  ();      c  .  model     =     'Tesla'  ;     // accessible within the same package      System  .  out  .  println  (  c  .  model  );      }   }   

Lähtö
Tesla  

Selitys: Jäseniä, joilla on oletuskäyttöoikeus, ei voi käyttää eri paketin luokista.

Geeks.java: Oletusluokka samassa paketissa

Java
   // default access modifier    package     p1  ;      // Class Geek is having    // Default access modifier    class   Geek      {         void     display  ()         {         System  .  out  .  println  (  'Hello World!'  );         }      }   

GeeksNew.java: Oletusluokka eri paketista (kontrastia varten)

C++
   // package with default modifier    package     p2  ;      import     p1  .  *  ;     // importing package p1   // This class is having    // default access modifier    class     GeekNew     {         public     static     void     main  (  String     args  [])     {             // Accessing class Geek from package p1       Geek     o     =     new     Geek  ();         o  .  display  ();         }      }   

Selitys:  Tässä esimerkissä ohjelma näyttää käännösaikavirheen, kun yritämme päästä oletusmuutosluokkaan eri paketista.

Suojatun pääsyn muokkaaja

Suojatun pääsyn muokkaaja määritetään avainsanalla suojattu. Suojatuiksi julistetut menetelmät tai datajäsenet ovat käytettävissä samassa paketissa tai alaluokissa eri paketeissa.

Java
   class   Vehicle     {      protected     int     speed  ;     // protected member   }   class   Bike     extends     Vehicle     {      void     setSpeed  (  int     s  )      {      speed     =     s  ;     // accessible in subclass      }      int     getSpeed  ()      {      return     speed  ;     // accessible in subclass      }   }   public     class   Main     {      public     static     void     main  (  String  []     args  ){          Bike     b     =     new     Bike  ();      b  .  setSpeed  (  100  );      System  .  out  .  println  (  'Access via subclass method: '      +     b  .  getSpeed  ());      Vehicle     v     =     new     Vehicle  ();      System  .  out  .  println  (  v  .  speed  );      }   }   

Lähtö
Access via subclass method: 100 0  

Selitys: nopeus on käytettävissä alaluokkamenetelmien ja muiden luokkien kautta samassa paketissa, mutta suora pääsy eri paketista (ei-alaluokka) epäonnistuisi.

Julkisen käytön muokkaus

Julkisen pääsyn muokkaaja määritetään avainsanalla public. Julkiset jäsenet ovat tavoitettavissa kaikkialta ohjelmassa. Julkisten tietojen jäsenmäärää ei ole rajoitettu.

Java
   class   MathUtils     {             public     static     int     add  (  int     a       int     b  )     {      return     a     +     b  ;      }   }   public     class   Main     {          public     static     void     main  (  String  []     args  )     {          System  .  out  .  println  (  MathUtils  .  add  (  5       10  ));     // accessible anywhere      }   }   

Lähtö
15  

Selitys: add() on maailmanlaajuisesti saatavilla julkisen muokkaimen ansiosta.

Huipputason luokkia tai liitäntöjä ei voida ilmoittaa yksityisiksi, koska yksityinen tarkoittaa "näkyy vain sulkevassa luokassa".

Java-käyttöoikeusmuutosten vertailutaulukko

sama_luokkaAccess-Modifier

Milloin kutakin pääsyn muokkaajaa tulee käyttää tosielämän projekteissa

  • Yksityinen: Ideana tulisi käyttää mahdollisimman rajoittavaa pääsyä, joten yksityistä tulisi käyttää mahdollisimman paljon.
  • Oletus (Paketti-yksityinen): Käytetään usein pakettikäyttöisissä apuohjelmissa tai apuohjelmissa.
  • Suojattu: Käytetään yleisesti perintöpohjaisissa malleissa, kuten kehyslaajennuksissa.
  • Julkinen : Tätä käytetään API-päätepisteiden palveluluokissa tai apumenetelmissä, jotka jaetaan sovelluksen eri osissa.


Luo tietokilpailu