Visibile al pacchetto. Il predefinito. Non sono necessari modificatori.
Visibile solo alla classe ( privato ).
Visibile al mondo ( pubblico ).
Visibile al pacchetto e tutte le sottoclassi ( protette ).
Variabili e metodi possono essere dichiarati senza alcun modificatore chiamato. Esempi predefiniti:
String name = "john";
public int age(){
return age;
}
Modificatore di accesso privato - privato:
Metodi, variabili e costruttori dichiarati privati sono accessibili solo all'interno della classe dichiarata stessa. Il modificatore di accesso privato è il livello di accesso più restrittivo. Classe e interfacce non possono essere private.
È possibile accedere alle variabili dichiarate private al di fuori della classe se nella classe sono presenti metodi getter pubblici.
L'uso del modificatore privato è il modo principale in cui un oggetto si incapsula e nasconde i dati dal mondo esterno.
Esempi:
Public class Details{
private String name;
public void setName(String n){
this.name = n;
}
public String getName(){
return this.name;
}
}
Modificatore di accesso pubblico - pubblico:
Una classe, metodo, costruttore, interfaccia, ecc. Dichiarati pubblici sono accessibili da qualsiasi altra classe. Pertanto, campi, metodi, blocchi dichiarati all'interno di una classe pubblica sono accessibili da qualsiasi classe appartenente all'universo Java.
Tuttavia, se la classe pubblica a cui stiamo tentando di accedere si trova in un pacchetto diverso, la classe pubblica deve comunque essere importata.
A causa dell'ereditarietà delle classi, tutti i metodi e le variabili pubblici di una classe sono ereditati dalle sue sottoclassi.
Esempio:
public void cal(){
}
Modificatore di accesso protetto - protetto:
Le variabili, i metodi e i costruttori dichiarati protetti in una superclasse sono accessibili solo dalle sottoclassi in un altro pacchetto o da qualsiasi classe all'interno del pacchetto della classe dei membri protetti.
Il modificatore di accesso protetto non può essere applicato a classe e interfacce. Metodi, campi possono essere dichiarati protetti, tuttavia metodi e campi in un'interfaccia non possono essere dichiarati protetti.
L'accesso protetto offre alla sottoclasse la possibilità di utilizzare il metodo helper o la variabile, impedendo a una classe non correlata di tentare di utilizzarla.
class Van{
protected boolean speed(){
}
}
class Car{
boolean speed(){
}
}
private
si nasconde da altre classi all'interno del pacchetto.public
espone a classi esterne al pacchetto.protected
è una versionepublic
limitata solo alle sottoclassi.