logo

Pasiekite modifikatorius Java

„Java“ prieigos modifikatoriai yra esminiai įrankiai, apibrėžiantys, kaip klasės nariai, pavyzdžiui, kintamųjų metodai, ir net pati klasė gali būti pasiekiami iš kitų mūsų programos dalių.

„Java“ yra 4 prieigos modifikatorių tipai: 

Access-Modifiers-in-Java-1' title=Pasiekite modifikatorius Java

Privačios prieigos modifikatorius

Privačios prieigos modifikatorius nurodomas naudojant raktinį žodį privatus. Metodai arba duomenų nariai, paskelbti privačiais, yra prieinami tik toje klasėje, kurioje jie deklaruoti.



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

Išvestis
Alice 

Paaiškinimas: Tiesioginė prieiga prie vardo neleidžiama išoriniam asmeniui, vykdančiam inkapsuliavimą.

Numatytasis prieigos modifikatorius

Kai klasės metodui arba duomenų nariui nenurodytas prieigos modifikatorius, pagal numatytuosius nustatymus jis turi numatytąjį prieigos modifikatorių. Tai reiškia, kad jį gali pasiekti tik to paties paketo klasės.

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

Išvestis
Tesla 

Paaiškinimas: Nariai, turintys numatytąją prieigą, negali būti pasiekti iš klasių kitame pakete.

Geeks.java: Numatytoji klasė tame pačiame pakete

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

GeeksNew.java: Numatytoji klasė iš kito paketo (dėl kontrasto)

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

Paaiškinimas:  Šiame pavyzdyje programa parodys kompiliavimo laiko klaidą, kai bandysime pasiekti numatytąją modifikatoriaus klasę iš kito paketo.

Apsaugotos prieigos modifikatorius

Apsaugotas prieigos modifikatorius nurodomas naudojant raktinį žodį protected. Metodai arba duomenų nariai, paskelbti apsaugotais, yra prieinami tame pačiame pakete arba poklasiuose skirtinguose paketuose.

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

Išvestis
Access via subclass method: 100 0 

Paaiškinimas: greitis pasiekiamas naudojant poklasio metodus ir kitas tame pačiame pakete esančias klases, tačiau tiesioginė prieiga iš kito paketo (ne poklasio) nepavyks.

Viešosios prieigos modifikatorius

Viešosios prieigos modifikatorius nurodomas naudojant raktinį žodį public. Viešieji nariai pasiekiami iš bet kurios programos vietos. Viešųjų duomenų narių apimtis nėra ribojama.

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

Išvestis
15 

Paaiškinimas: add() yra visuotinai prieinamas dėl viešojo modifikatoriaus.

Aukščiausio lygio klasės arba sąsajos negali būti paskelbtos privačiomis, nes privatus reiškia „matomas tik įtraukiančioje klasėje“.

„Java“ prieigos modifikatorių palyginimo lentelė

ta pati_klasė' loading='lazy' title=Prieigos modifikatorius

Kada naudoti kiekvieną prieigos modifikatorių realaus pasaulio projektuose

  • Privatus: Idėja turėtų būti kuo labiau apribota prieiga, taigi privatus turėtų būti naudojamas kuo daugiau.
  • Numatytoji (Privatus paketas): dažnai naudojamas paketų apimties komunalinėse paslaugose arba pagalbinėse klasėse.
  • Apsaugota: Dažniausiai naudojamas paveldėjimu pagrįstuose projektuose, pvz., sistemos plėtiniuose.
  • Viešas : naudojama API galinių taškų paslaugų klasėms arba naudingumo metodams, bendrinamiems skirtingose ​​programos dalyse.


Sukurti viktoriną