I modificatori di accesso dei metodi e delle variabili di una classe java

In questo articolo spiego come impostare la visibilità dei metodi e delle variabili d’istanza, cioè di quelle variabili dichiarate all’esterno di ogni metodo (le variabili dichiarate all’interno di un metodo sono dette variabili locali e hanno una visibilità limitata al metodo che le contiene).

I modificatori di accesso di metodi e variabili in java sono:

  • public
  • private
  • protected

che definiscono 4 tipi di visibilità, essendo il quarto dato dall’assenza di un modificatore di accesso (default).
La classe deve essere visibile nel senso spiegato in questo articolo, se è visibile i modificatori di accesso applicati ai metodi e alle variabili rifiniscono ulteriormente la visibilità.

Se la classe non è dichiarata public (default), tutti i suoi metodi e variabili sono visibili alle classi dello stesso package ad eccezione di quelli dichiarati private.
Se la classe non è dichiarata public (default), tutti i suoi metodi e variabili sono nascosti alle classi di altri package.
Osserva il seguente codice in cui la classe B accede ai metodi della classe A dallo stesso o da un differente package.

Se la classe è dichiarata public, tutti i suoi metodi e variabili sono visibili alle classi dello stesso package ad eccezione di quelli dichiarati private.
Se la classe è dichiarata public, tutti i suoi metodi e variabili sono visibili alle classi di altri package ad eccezione di quelli dichiarati private, (default) e protected nel caso di sotto classe .
Osserva il seguente codice in cui la classe B accede ai metodi della classe A public dallo stesso o da un differente package.

Si può riassumere il tutto con il seguente schema:

  class B
stesso package
class B extends A
stesso package
class B
diverso package
class B extends A
diverso package
(default) class A public: si
private: no
protected: si
(default): si
non visibile
public class A public: si
private: no
protected: no
(default): no
public: si
private: no
protected: si
(default): no

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.