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:
- Predefinito: nessuna parola chiave richiesta
- Privato
- Protetto
- 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 mylivecricketGiava
// 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 directoryGiava
// 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:
// 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.