En Java, comme dans beaucoup de langages orientés objet, les classes, les attributs et les méthodes bénéficient de niveaux d'accessibilité, qui indiquent dans quelles circonstances on peut accéder à ces éléments.
Ces niveaux sont au nombre de 4, correspondant à 3 mots-clés utilisés comme modificateurs : private, protected et public. La quatrième possibilité est de ne pas spécifier de modificateur (comportement par défaut).
Comportement par défaut
Si aucun modificateur n'est indiqué, l'élément n'est accessible que depuis les classes faisant partie du même package.
Exemple :
package com.moimeme.temps;
class Horloge
{
// corps de la classe
}
public class Calendrier
{
void ajouteJour()
{
// corps de la methode
}
int mois;
// suite de la classe
}
La classe Horloge, la méthode ajouteJour et l'attribut mois ne sont accessibles que depuis les classes faisant partie du package com.moimeme.temps.
Modificateur "private"
Un attribut ou une méthode déclarée "private" n'est accessible que depuis l'intérieur de la même classe.
Modificateur "protected"
Un attribut ou une méthode déclarée "protected" est accessible uniquement aux classes d'un package et à ses sous-classes même si elles sont définies dans un package différent.
Modificateur "public"
Une classe, un attribut ou une méthode déclarée "public" est visible par toutes les classes et les méthodes.
En résumé
Le tableau résume les différents mode d'accès des membres d'une classe.
Modificateur du membre | private |
aucun | protected |
public |
---|---|---|---|---|
Accès depuis la classe | Oui | Oui | Oui | Oui |
Accès depuis une classe du même package |
Non | Oui | Oui | Oui |
Accès depuis une sous-classe | Non | Non | Oui | Oui |
Accès depuis toute autre classe | Non | Non | Non | Oui |