Programmation Java/Encapsulation
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[modifier | modifier le wikicode]
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"[modifier | modifier le wikicode]
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"[modifier | modifier le wikicode]
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"[modifier | modifier le wikicode]
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é[modifier | modifier le wikicode]
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 |