Source

Selon leur niveau de visibilité, les classes, les interfaces, les attributs et les méthodes peuvent être accessibles ou non depuis des classes du même paquetage ou depuis des classes d'autres paquetages. Si on tente de compiler une classe invoquant une classe, une interface ou un champ non accessible, il y a un message d'erreur pour indiquer que l'entité en question n'est pas accessible.

Les classes, attributs et méthodes peuvent être visibles ou non à l'intérieur d'autres paquetages ou d'autres classes.

Pour indiquer les degrés de visibilité, on utilise des modificateurs de visibilité. Les différents modificateurs sont indiqués par les mots clé :

Ces modificateurs sont indiqués devant l'en-tête d'une classe ou d'une méthode ou devant le type d'un attribut. Lorqu'il n'y a pas de modificateur, on dit que la visibilité est la visibilité par défaut.

Une classe ne peut que :

Un champ (attribut ou méthode) peut avoir les quatre degrés de visibilité.

On peut écrire par exemple :

**private int** nbDonnees;
**public void** methode() {}

Si un champ d'une classe A :

Ci-dessus, les niveaux de visibilité sont rangés par visibilité croissante.

<aside> ⚠️ Rappelons une règle : une méthode d'instance ne peut pas être redéfinie en diminuant son niveau de visibilité.

</aside>