les modificateurs de niveau d’accès déterminent si d’autres classes peuvent utiliser un champ particulier ou invoquer une méthode particulière. Il existe deux niveaux de contrôle d’accès:
- au niveau supérieur
public
, ou package-private (pas de modificateur explicite). - Au niveau des membres
public
,private
,protected
, ou de colis-privé (explicite pas de modificateur).,
Une classe peut être déclarée avec le modificateurpublic
, auquel cas cette classe est visible par toutes les classes partout. Si une classe n’a pas de modificateur (la valeur par défaut, également connue sous le nom de package-private), elle n’est visible que dans son propre package (les packages sont nommés groupes de classes connexes vous en apprendrez plus sur eux dans une leçon ultérieure.)
au niveau membre, vous pouvez également utiliser le modificateur public
ou aucun modificateur (package-private) tout comme avec les classes de niveau supérieur, et avec la même signification., Pour les membres, il existe deux modificateurs d’accès supplémentaires: private
Et protected
. Le modificateur private
spécifie que le membre n’est accessible que dans sa propre classe. Le modificateur protected
spécifie que le membre n’est accessible que dans son propre paquet (comme avec package-private) et, de plus, par une sous-classe de sa classe dans un autre paquet.
Le tableau suivant montre l’accès aux membres autorisés par chaque modificateur.,Modifier
public
protected
private
The first data column indicates whether the class itself has access to the member defined by the access level., Comme vous pouvez le voir, une classe a toujours accès à ses propres membres. La deuxième colonne indique si les classes du même package que la classe (quelle que soit leur filiation) ont accès au membre. La troisième colonne indique si les sous-classes de la classe déclarée en dehors de ce paquet ont accès au membre. La quatrième colonne indique si toutes les classes ont accès au membre.
les niveaux D’accès vous affectent de deux manières., Tout d’abord, lorsque vous utilisez des classes provenant d’une autre source, telles que les classes de la plate-forme Java, les niveaux d’accès déterminent les membres de ces classes que vos propres classes peuvent utiliser. Deuxièmement, lorsque vous écrivez une classe, vous devez décider quel niveau d’accès chaque variable membre et chaque méthode de votre classe devrait avoir.
examinons une collection de classes et voyons comment les niveaux d’accès affectent la visibilité. La figure suivante montre les quatre classes dans cet exemple et comment elles sont liées.,
cours et des Forfaits de l’Exemple Utilisé pour Illustrer les Niveaux d’Accès
Le tableau suivant montre où les membres de la classe Alpha sont visibles pour chacun des modificateurs d’accès qui peuvent être appliquées.,ha
public
protected
private
If other programmers use your class, you want to ensure that errors from misuse cannot happen., Niveaux d’accès peuvent vous aider à le faire.
- utilisez le niveau d’accès le plus restrictif qui ait du sens pour un membre particulier. Utilisez
private
sauf si vous avez une bonne raison de ne pas le faire. - évitez les champs
public
sauf pour les constantes. (De nombreux exemples du tutoriel utilisent des champs publics. Cela peut aider à illustrer certains points de manière concise, mais n’est pas recommandé pour le code de production.) Les champs publics ont tendance à vous lier à une implémentation particulière et à limiter votre flexibilité dans la modification de votre code.