logo

Modificatori di accesso in Java

in Java, i modificatori di accesso aiutano a limitare l'ambito di una classe, costruttore, variabile, metodo o membro dati. Fornisce sicurezza, accessibilità, ecc. all'utente a seconda del modificatore di accesso utilizzato con l'elemento. Impariamo a conoscere i modificatori di accesso Java, i loro tipi e gli usi dei modificatori di accesso in questo articolo.

Tipi di modificatori di accesso in Java

In Java sono disponibili quattro tipi di modificatori di accesso:

  1. Predefinito: nessuna parola chiave richiesta
  2. Privato
  3. Protetto
  4. Pubblico

1. Modificatore di accesso predefinito

Quando non viene specificato alcun modificatore di accesso per una classe, un metodo o un membro dati, si dice che abbia il file predefinito modificatore di accesso per impostazione predefinita. I membri dati, le classi o i metodi che non sono dichiarati utilizzando alcun modificatore di accesso, ovvero con modificatori di accesso predefiniti, sono accessibili solo all'interno dello stesso pacchetto .



In questo esempio, creeremo due pacchetti e le classi nei pacchetti avranno i modificatori di accesso predefiniti e proveremo ad accedere a una classe da un pacchetto da una classe del secondo pacchetto.

Programma 1:

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


Programma 2:

alternativa a mylivecricket
Giava
// 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();   }  }>

Produzione:

Compile time error>

2. Modificatore di accesso privato

Il modificatore di accesso privato viene specificato utilizzando la parola chiave privato . Solo i metodi o i membri dati dichiarati come privati ​​sono accessibili all'interno della classe in cui vengono dichiarati.

  • Qualsiasi altro classe di IL lo stesso pacchetto non sarà in grado di accedere questi membri.
  • Le classi o le interfacce di livello superiore non possono essere dichiarate come private perché
    • privato significa visibile solo all'interno della classe che lo racchiude.
    • protetto significa visibile solo all'interno della classe che lo racchiude e di eventuali sottoclassi

Quindi questi modificatori in termini di applicazione alle classi si applicano solo alle classi nidificate e non alle classi di primo livello

In questo esempio creeremo due classi A e B all'interno dello stesso pacchetto p1. Dichiareremo un metodo nella classe A come privato e proveremo ad accedere a questo metodo dalla classe B e vedremo il risultato.

Linux cambia nome alla directory
Giava
// 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();  } }>

Produzione:

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

3. Modificatore di accesso protetto

Il modificatore di accesso protetto viene specificato utilizzando la parola chiave protetto .

I metodi o i dati membri dichiarati protetti lo sono accessibili all'interno dello stesso pacchetto o sottoclassi in pacchetti diversi.

In questo esempio creeremo due pacchetti p1 e p2. La classe A in p1 è resa pubblica, per accedervi in ​​p2. La visualizzazione del metodo nella classe A è protetta e la classe B viene ereditata dalla classe A e si accede quindi a questo metodo protetto creando un oggetto di classe B.

Programma 1:

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


Programma 2:

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

Produzione:

techcodeview.com>

Modificatore di accesso pubblico

Il modificatore di accesso pubblico viene specificato utilizzando la parola chiave pubblico .

  • Il modificatore di accesso pubblico ha il ambito più ampio tra tutti gli altri modificatori di accesso.
  • Le classi, i metodi o i membri dati dichiarati come pubblici lo sono accessibile da ogni parte nel programma. Non esiste alcuna restrizione sull'ambito dei membri dei dati pubblici.

Programma 1:

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

Programma 2:

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

Produzione:

techcodeview.com>

Punti importanti:

  • Se altri programmatori utilizzano la tua classe, prova a utilizzare il livello di accesso più restrittivo che ha senso per un particolare membro. Usa privato a meno che tu non abbia una buona ragione per non farlo.
  • Evitare campi pubblici ad eccezione delle costanti.

Algoritmo per utilizzare il modificatore di accesso in Java

Ecco un algoritmo di base per l'utilizzo dei modificatori di accesso in Java:

  • Definire una classe: Crea una classe che rappresenta l'oggetto che desideri gestire.
  • Definire le variabili di istanza: All'interno della classe, definisci le variabili di istanza che rappresentano i dati che desideri gestire.
  • Specificare un modificatore di accesso: per ogni variabile di istanza, specificare un modificatore di accesso che determina la visibilità della variabile. I tre principali modificatori di accesso in Java sono privato, protetto e pubblico.
  • Utilizza private per le variabili che dovrebbero essere accessibili solo all'interno della classe: Se vuoi impedire l'accesso a una variabile dall'esterno della classe, usa il modificatore di accesso privato. Questo è il modificatore di accesso più restrittivo e fornisce il massimo livello di incapsulamento.
  • Utilizzare protected per le variabili che dovrebbero essere accessibili all'interno della classe e delle sue sottoclassi : se desideri consentire l'accesso a una variabile dall'interno della classe e delle sue sottoclassi, utilizza il modificatore di accesso protetto. Questo è meno restrittivo di private e fornisce un certo livello di ereditarietà.
  • Utilizzare public per le variabili che dovrebbero essere accessibili da qualsiasi luogo : se vuoi consentire l'accesso a una variabile da qualsiasi luogo, utilizza il modificatore di accesso pubblico. Questo è il modificatore di accesso meno restrittivo e fornisce la minima quantità di incapsulamento.
  • Utilizzare metodi di accesso e mutatore per gestire l'accesso alle variabili: Per accedere e modificare le variabili, utilizzare i metodi accessor (getter) e mutator (setter), anche se le variabili hanno un modificatore di accesso pubblico. Ciò fornisce un livello di astrazione e rende il codice più gestibile e testabile.

Domande frequenti sui modificatori di accesso

1. Cosa sono i modificatori di accesso in Java?

I modificatori di accesso in Java sono le parole chiave utilizzate per controllare l'utilizzo di metodi, costruttori, campi e metodi in una classe.

semplice programma Python

2. Cos'è il vuoto in Java?

Void in Java viene utilizzato per non specificare alcun valore restituito con il metodo.

3. Quali sono i 12 modificatori in Java?

12 I modificatori in Java sono pubblici, privati, protetti, predefiniti, finali, sincronizzati, astratti, nativi, strictfp, transitori e volatili.