Controllo di accesso in Java
Java fornisce quattro livelli per il controllo di accesso a metodi, campi e classi:
- Public
- Private
- Protected
- Package
Accesso package
L'accesso di package ha di default un'impostazione di accesso. Un membro di classe (o una classe) senza specificatore di accesso può essere accessibile dai metodi di classi nello stesso pacchetto, cioè accesso di pacchetto. Può essere una buona impostazione per le classi, ma non lo è per le variabili, perché si viola l'incapsulamento.
Esempio:
public class Window extends Container {
String warningString;
...
}
Accesso protected
Una sottoclasse non può accedere a campi private ereditati dalla propria superclasse. Il progettista della superclasse può rendere un campo di esemplare accessibile in modo protected, così tutte le sottoclassi possono accedervi. Anche i metodi possono essere definiti protected e possono essere invocati solo nella classe in cui sono definiti e nelle classi da essa derivate.
Esempio:
public class BankAccount {
...
protected double balance;
}
Modificatore di accesso final
Un metodo dichiarato final non può essere sovrascritto da sottoclassi. Una classe dichiarata final non può essere estesa. Le classi di tipo array si comportano come classi perché non possono essere estese.