logo

Modificadors d'accés a Java

a Java, els modificadors d'accés ajuden a restringir l'abast d'una classe, un constructor, una variable, un mètode o un membre de dades. Proporciona seguretat, accessibilitat, etc. a l'usuari en funció del modificador d'accés utilitzat amb l'element. Coneixem els modificadors d'accés de Java, els seus tipus i els usos dels modificadors d'accés en aquest article.

Tipus de modificadors d'accés a Java

Hi ha quatre tipus de modificadors d'accés disponibles a Java:

  1. Per defecte: no es requereix cap paraula clau
  2. Privat
  3. Protegit
  4. Públic

1. Modificador d'accés per defecte

Quan no s'especifica cap modificador d'accés per a una classe, mètode o membre de dades, es diu que té el per defecte modificador d'accés per defecte. Els membres de dades, les classes o els mètodes que no es declaren utilitzant cap modificador d'accés, és a dir, amb modificadors d'accés predeterminats, són accessibles. només dins del mateix paquet .



En aquest exemple, crearem dos paquets i les classes dels paquets tindran els modificadors d'accés per defecte i intentarem accedir a una classe des d'un paquet des d'una classe del segon paquet.

Programa 1:

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


Programa 2:

java convertir char a int
Java
// Java program to illustrate error while  // using class from different package with  // default modifier  package p2;  import p1.*;  // This class is having default access modifier  class GeekNew  {   public static void main(String args[])   {   // Accessing class Geek from package p1   Geek obj = new Geek();   obj.display();   }  }>

Sortida:

Compile time error>

2. Modificador d'accés privat

El modificador d'accés privat s'especifica mitjançant la paraula clau privat . Els mètodes o membres de dades declarats com a privats només són accessibles dins de la classe en què es declaren.

  • Qualsevol altre classe de el el mateix paquet no podrà accedir aquests membres.
  • Les classes o interfícies de primer nivell no es poden declarar com a privades perquè
    • privat significa només visible dins de la classe adjunta.
    • protegit significa només visible dins de la classe que l'adjunta i de qualsevol subclasse

Per tant, aquests modificadors pel que fa a l'aplicació a les classes, s'apliquen només a les classes imbricades i no a les classes de nivell superior.

En aquest exemple, crearem dues classes A i B dins del mateix paquet p1. Declararem un mètode de la classe A com a privat i intentarem accedir a aquest mètode des de la classe B i veurem el resultat.

python ordena tupla
Java
// Java program to illustrate error while // Using class from different package with // Private Modifier package p1; // Class A class A {  private void display()  {  System.out.println('techcodeview.com');  } } // Class B class B {  public static void main(String args[])  {  A obj = new A();  // Trying to access private method  // of another class  obj.display();  } }>

Sortida:

error: display() has private access in A  obj.display();>

3. Modificador d'accés protegit

El modificador d'accés protegit s'especifica mitjançant la paraula clau protegit .

Els mètodes o dades membres declarats com a protegits són accessible dins del mateix paquet o subclasses en paquets diferents.

En aquest exemple, crearem dos paquets p1 i p2. La classe A a p1 es fa pública, per accedir-hi a p2. La visualització del mètode a la classe A està protegida i la classe B s'hereta de la classe A i després s'accedeix a aquest mètode protegit creant un objecte de classe B.

Programa 1:

Java
// Java Program to Illustrate // Protected Modifier package p1; // Class A public class A {  protected void display()  {  System.out.println('techcodeview.com');  } }>


Programa 2:

Java
// Java program to illustrate // protected modifier package p2; // importing all classes in package p1 import p1.*;  // Class B is subclass of A class B extends A {  public static void main(String args[])  {  B obj = new B();  obj.display();  } }>

Sortida:

techcodeview.com>

Modificador d'accés públic

El modificador d'accés públic s'especifica mitjançant la paraula clau públic .

  • El modificador d'accés públic té el àmbit més ampli entre tots els altres modificadors d'accés.
  • Les classes, els mètodes o els membres de dades que es declaren com a públics ho són accessible des de tot arreu al programa. No hi ha cap restricció a l'abast dels membres de les dades públiques.

Programa 1:

Java
// Java program to illustrate  // public modifier  package p1;  public class A  {  public void display()   {   System.out.println('techcodeview.com');   }  }>

Programa 2:

Java
package p2; import p1.*; class B {  public static void main(String args[])  {  A obj = new A();  obj.display();  } }>

Sortida:

techcodeview.com>

Punts importants:

  • Si altres programadors utilitzen la vostra classe, proveu d'utilitzar el nivell d'accés més restrictiu que tingui sentit per a un membre concret. Utilitzeu privat tret que tingueu una bona raó per no fer-ho.
  • Eviteu els camps públics excepte les constants.

Algorisme per utilitzar el modificador d'accés a Java

Aquí teniu un algorisme bàsic per utilitzar modificadors d'accés a Java:

  • Definiu una classe: Creeu una classe que representi l'objecte que voleu gestionar.
  • Definiu variables d'instància: Dins de la classe, definiu variables d'instància que representin les dades que voleu gestionar.
  • Especifiqueu un modificador d'accés: per a cada variable d'instància, especifiqueu un modificador d'accés que determini la visibilitat de la variable. Els tres modificadors d'accés principals a Java són privats, protegits i públics.
  • Utilitzeu private per a variables que només haurien de ser accessibles dins de la classe: Si voleu impedir l'accés a una variable des de fora de la classe, utilitzeu el modificador d'accés privat. Aquest és el modificador d'accés més restrictiu i proporciona el major nivell d'encapsulació.
  • Utilitzeu protegit per a variables que haurien de ser accessibles dins de la classe i les seves subclasses : Si voleu permetre l'accés a una variable des de la classe i les seves subclasses, utilitzeu el modificador d'accés protegit. Això és menys restrictiu que el privat i proporciona cert nivell d'herència.
  • Utilitzeu public per a variables que haurien de ser accessibles des de qualsevol lloc : Si voleu permetre l'accés a una variable des de qualsevol lloc, utilitzeu el modificador d'accés públic. Aquest és el modificador d'accés menys restrictiu i proporciona la menor quantitat d'encapsulació.
  • Utilitzeu mètodes d'accés i mutador per gestionar l'accés a les variables: Per accedir i modificar les variables, utilitzeu els mètodes d'accés (getter) i mutador (setter), encara que les variables tinguin un modificador d'accés públic. Això proporciona un nivell d'abstracció i fa que el vostre codi sigui més fàcil de mantenir i provable.

Preguntes freqüents a Modificadors d'accés

1. Què són els modificadors d'accés a Java?

Els modificadors d'accés a Java són les paraules clau que s'utilitzen per controlar l'ús dels mètodes, constructors, camps i mètodes d'una classe.

patró de disseny del constructor

2. Què és void a Java?

Void a Java s'utilitza per especificar cap valor de retorn amb el mètode.

3. Quins són els 12 modificadors de Java?

12 Els modificadors de Java són públics, privats, protegits, predeterminats, finals, sincronitzats, abstractes, natius, strictfp, transitoris i volàtils.