banner

Précédent   InfographiK - Communauté Graphique > FLASH & ACTION SCRIPT > Débuter avec Flash > Les cours de base

Réponse
 
LinkBack Outils de la discussion
  #1 (permalink)  
Vieux 04/04/2007, 12h43
Avatar de Smike
Administrateur
 
Date d'inscription: May 2002
Localisation: 26
Messages: 3 008
Zoom [ActionScript] Les méthodes Getter & Setter

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:
  1. public function get nomProprieteVisibleDepuisExterieur():TypeDeSortie {
  2. return LaValeur;
  3. }

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:
  1. public function get kilometres():Number {
  2. return _nKilometres;
  3. }

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:
  1. public function set nomProprieteVisibleDepuisExterieur(ValeurAAffectée:Number):Void {
  2. // Définition de la méthode
  3. }

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:
  1. public function set kilometres(nKilometres:Number):Void {
  2. if(nKilometres >= 0) {
  3. _nKilometres = nKilometres;
  4. }
  5. else {
  6. _nKilometres = 0;
  7. }
  8. }

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
__________________
[La musique fait danser les consciences]
Réponse avec citation
Réponse

Outils de la discussion

Règles de messages
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui



Fuseau horaire GMT +2. Il est actuellement 05h35.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0 Tous droits réservés.
Version française #13 par l'association vBulletin francophone

Communauté Graphique
CNIL : 1130886