Accesseurs d'un objet
Rappel :
Il est impossible de lire ou d'écrire dans un membre de la classe définit comme private
.
Le seul moyen est de créer des méthodes appelées accesseurs en lecture ou écriture.
Le plus souvent, ces méthodes commencent par les mots anglais get pour obtenir ou set pour modifier.
Accesseurs
Les attributs définis dans l'objet television
n'auront pas lieu de changer. Le numéro de série est fixe tout comme la diagonale écran.
Imaginons que nous voulions conserver la valeur de la chaîne en cours et le niveau de réglage du volume.
Créons pour cela 2 attributs supplémentaires private
: chaine
et volume
.
Puisqu'ils sont private
, seuls les méthodes membres peuvent accéder à chaine
et volume
.
Créons donc un accesseur en lecture que nous nommerons : getChaine()
et getVolume()
.
La classe devient :

Un accesseur ne s'occupe que de permettre l'accès en lecture ou écriture à un attribut privé.
Pour obtenir la chaîne en cours :
int noch ;
noch = television.getChaine();
Nous venons de créer et utiliser une méthode accesseur en lecture d'un attribut private
.
Le seul moyen pour changer le volume est d'utiliser la méthode changerChaine()
de l'objet.
Simulation : Pourquoi ne pas déclarer l'attribut chaine comme public ?
Pour permettre à la méthode accesseur de contrôler la valeur que prendra l'attribut.
En donnant l'accès publique, un utilisateur pourrait fixer une valeur incohérente à l'attribut chaine
, ce qui engendrerait un mauvais fonctionnement de l'objet.
Fondamental : Codage d'un accesseur en écriture
Veillez à contrôler la valeur d'un attribut afin qu'elle soit conforme à ce que permet l'objet.
Par exemple, une valeur 65003 pour une chaîne est incohérente.
Dans ce cas, l'accesseur retournera une valeur d'erreur signifiant à l'utilisateur que la valeur est erronée.