Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011
-
10 avril 2009 à 10:42
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011
-
10 avril 2009 à 18:17
Hello,
Juste une petite question :
Imaginons une classe AS3.
Vaut-il mieux utiliser des functions public get et set pour recuperer ou modifier des variables OU simplement declarer des var en public ?
Exemple function get et set :
public function get hello():void{
return maVar;
}
public function set hello(pVal):void{
maVar = pVal;
}
-------------
Exemple public var :
public var maVar:String = "hello";
Dans les 2 cas je peux y acceder et modifier en faisant cela dans mon fla:
maClassInstance.hello; // affiche valeur de maVal
maClassInstance.hello = hello; // nouvelle valeur de maVal : "hello"
Qu'en pensez-vous ?
-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
cs_bali_balo
Messages postés1378Date d'inscriptionsamedi 9 octobre 2004StatutMembreDernière intervention 1 novembre 20101 10 avril 2009 à 11:10
Salut,
La seule différence c'est qu'avec les fonctions get set et tu peux réaliser un traitement avant de retourner ou de modifier les propriétés publics.
Mais sinon il n'y a pas réellement de différence au niveau "conception" car les deux syntaxes permettent un accès public.
Illustration :
prenons un jeu de carte de poker. Tu as la propriété couleur (de type Number) de la classe CartePoker qui hérite de MovieClip. Si tu faisais seulement maCarte.couleur = 0; (0=PIC,1=COEUR,etc.), est-ce que cela va pour autant changer la couleur de ta carte ? Non car il faut changer l'état du clip qui représente la couleur de la carte (un clip à créer ou simplement un gotoAndStop()). D'où l'intéret de fonction "get" et "set". C'est ce qu'on appelle l'encapsulation (du moins avec des propriétés déclarées en private si je ne me trompe pas )
cs_bali_balo
Messages postés1378Date d'inscriptionsamedi 9 octobre 2004StatutMembreDernière intervention 1 novembre 20101 10 avril 2009 à 11:13
Et pour finir ActionScript permet tout simplement d'éviter les appels de fonctions comme en Java : maCarte.getCouleur(), etc. Moi personnellement je l'ai très rarement utilisé voire jamais. C'est plus parlant pour moi de faire ".getCouleur()" que ".couleur" : je sais au moins que j'ai à faire à une méthode et non à un accès direct de propriété.