Les méthodes
Getter & Setter sont des méthodes bien spécifiques du développement AS2.0.
En effet, ces méthodes se comportent comme des propriétés à l'extérieur de la classe, mais comme des méthodes à l'intérieur de celle ci. Complexe ? non très simple en réalité.
Pourquoi utiliser des Getter & Setter dans nos classes? plusieurs avantages :
Elles permettent de travailler avec des noms de propriétés comme
_nKilometres à l'intérieur de la classe, mais de donner un nom plus symbolique comme kilometre à l'exterieure de celle ci.
Elles permettent de créer des propriétés en lecture seule ou écriture seule.
Elles permettent de créer des propriétés virtuelles qui ne correspondent pas directement à une propriété de la classe, mais plutot à un mix, un traitement, de celles-ci.
Elles permettent de s'assurer de l'intégrité de certaines propriétés, en réalisant par exemple des tests, des formatages, avant des affectations.
Pour la petite histoire, en POO, la tendance est de déclarer la majorité de nos propriétés en privée. Pourquoi se choix ? tout simplement pour s'assurer que ces propriétés ne seront affectés/modifées, par des traitements tiers à l'exterieur de la classe où elles sont définies.
Le principe d'encapsulation des données est alors des plus correct.
N'oublions pas que le grand principe de la POO reside dans cette encapsulation des données : chaque objet à ces propres données, méthodes. Voyons par des exemples, une utilisation de ces Getter & Setter.
Méthode Getter :
Une méthode Getter n'accepte aucun paramètre en entrée et doit toujours retouner une valeur en sortie. Cette méthode utilise le mot clé : get
Une fonction Getter à pour format :
ActionScript Code:
public function get nomProprieteVisibleDepuisExterieur():TypeDeSortie {
return LaValeur;
}
Cette méthode peut être de portée publique et/ou statique mais bien evidemment jamais privée! Dans notre classe Voiture, déclarons un Getterpour récupérer notre propriété
_nKilometres (membre privée de la classe):
ActionScript Code:
public function get kilometres():Number {
return _nKilometres;
}
Une fois notre instance de classe créer, nous pourrons donc accéder à la propriétés
_nKilometres via cette méthode Getter.
Méthode Setter :
Au contraire, une méthode Setter, accepte des paramètres en entrée mais ne retoune aucune valeur. Cette méthode utilise le mot clé : set. Une fonction Setter à pour format :
ActionScript Code:
public function set nomProprieteVisibleDepuisExterieur(ValeurAAffectée:Number):Void {
// Définition de la méthode
}
Pour un cas concret, reprenons de nouveau notre classe Voiture. Nous voudrions affecter à la variable _nKilometres une nouvelle valeur. En restant dans un cadre logique, cette valeur ne doit pas être inférieure à 0, ce qui n'aurait aucun sens. Et bien les Setter vont permettre de réaliser ces différents tests avant l'affectation de nos valeurs:
ActionScript Code:
public function set kilometres(nKilometres:Number):Void {
if(nKilometres >= 0) {
_nKilometres = nKilometres;
}
else {
_nKilometres = 0;
}
}
Ce volet avait pour but de vous familiariser avec ces méthodes Getter & Setter. Cette technique est propre à Flash, car nous verrons dans un prochain volet, que dans l'esprit POO, les Getter & Setter sont un peu différents.
Le principe reste le même, c'est la déclaration et les appels des ces methodes qui changera un ptit peu. Ceci dit, l'utilisation de ces Getter & Setter est tout à fait correcte et surtout parfois nécessaire…
Source : Adddvance.net