Junior
Parla dei modificatori di accesso in Java.
sobes.tech AI
Risposta dell'AI
I modificatori di accesso controllano la visibilità delle classi, dei membri della classe (campi, metodi, costruttori) in Java.
Esistono quattro modificatori di accesso:
publicprotecteddefault(senza modificatore)private
La loro visibilità in diversi contesti:
| Modificatore | Dentro la classe | Dentro il package | In una sottoclasse (in qualsiasi package) | Ovunque |
|---|---|---|---|---|
private |
Sì | No | No | No |
default |
Sì | Sì | No | No |
protected |
Sì | Sì | Sì | No |
public |
Sì | Sì | Sì | Sì |
Esempi di utilizzo:
public class Parent {
private int privateField; // Accessibile solo all'interno della classe Parent
int defaultField; // Accessibile all'interno del package
protected int protectedField; // Accessibile all'interno del package e nelle sottoclassi
public int publicField; // Accessibile ovunque
private void privateMethod() {} // Accessibile solo all'interno della classe Parent
void defaultMethod() {} // Accessibile all'interno del package
protected void protectedMethod() {} // Accessibile all'interno del package e nelle sottoclassi
public void publicMethod() {} // Accessibile ovunque
}
package another_package;
import some_package.Parent;
public class Child extends Parent {
void accessFields() {
// privateField = 10; // Errore: privato
defaultField = 20; // Errore: default (in altro package)
protectedField = 30; // Accessibile: protected (nella sottoclasse)
publicField = 40; // Accessibile: pubblico
}
void accessMethods() {
// privateMethod(); // Errore: privato
// defaultMethod(); // Errore: default (in altro package)
protectedMethod(); // Accessibile: protected (nella sottoclasse)
publicMethod(); // Accessibile: pubblico
}
}
I modificatori vengono usati per incapsulamento e gestione dell'API delle classi.