Documentation Flash CS3 |
|||
| Programmation avec ActionScript 3.0 > Programmation orientée objet en ActionScript > Classes > Les variables | |||
Pour déclarer une variable, utilisez les mots-clés var ou const. La valeur des variables déclarées à l'aide du mot-clé var peut être modifiée à plusieurs reprises pendant l'exécution du script. Les variables déclarées à l'aide du mot-clé const sont appelées des constantes, et leur valeur est définie lors de leur création. Une erreur se produit si vous tentez d'affecter une nouvelle valeur à une constante initialisée. Pour plus d'informations, consultez la section Constantes.
Les variables statiques sont déclarées à l'aide du mot-clé static et de l'instruction var ou const. Les variables statiques sont affectées à une classe, plutôt qu'à une instance de classe. Elles permettent de stocker et renvoyer des informations propres à une classe entière d'objets. Par exemple, une variable statique permet d'enregistrer le nombre de fois où une classe a été instanciée, ou le nombre maximal d'instances autorisées pour une classe.
L'exemple ci-dessous crée une variable totalCount qui permet d'enregistrer le nombre total d'instanciations d'une classe, et une constante MAX_NUM dont la valeur est le nombre maximal d'instanciations autorisées. Les variables totalCount et MAX_NUM sont statiques car elles contiennent des valeurs qui s'appliquent à la classe elle-même, plutôt qu'à une instance particulière.
class StaticVars
{
public static var totalCount:int = 0;
public static const MAX_NUM:uint = 16;
}
Tout code externe à la classe StaticVars et à ses sous-classes ne peut référencer les propriétés totalCount et MAX_NUM que par le biais de la classe elle-même. Par exemple, le code suivant fonctionne :
trace(StaticVars.totalCount); // résultat : 0 trace(StaticVars.MAX_NUM); // résultat : 16
Comme il est impossible d'accéder à des variables statiques via une instance de la classe, le code suivant renvoie des erreurs :
var myStaticVars:StaticVars = new StaticVars(); trace(myStaticVars.totalCount); // Erreur trace(myStaticVars.MAX_NUM); // Erreur
Les variables qui sont déclarées à l'aide des mots-clés static et const doivent être initialisées au moment de la déclaration de la constante, tout comme la classe StaticVars le fait pour MAX_NUM. Il est impossible d'affecter une valeur à MAX_NUM à partir du constructeur ou d'une méthode d'une instance. Le code suivant génèrera une erreur, car ce n'est pas une façon valide d'initialiser une constante statique :
// !! C'est une erreur d'initialiser une constant statique de cette façon
class StaticVars2
{
public static const UNIQUESORT:uint;
function initializeStatic():void
{
UNIQUESORT = 16;
}
}
Les variables d'instance sont des propriétés déclarées à l'aide des mots-clés var et const mais sans le mot-clé static. Les variables d'instance, qui sont affectées à des instances de classe plutôt qu'à la classe elle-même, sont utiles pour conserver des valeurs spécifiques à une instance. Par exemple, la classe Array dispose d'une propriété d'instance nommée length qui conserve le nombre d'éléments du tableau appartenant à une instance particulière de la classe Array.
Qu'elles soient déclarées avec le mot-clé var ou const, les variables d'instance ne peuvent pas être redéfinies dans une sous-classe. Il est toutefois possible d'obtenir un effet similaire à la redéfinition de variables, en redéfinissant des méthodes de lecture et de définition. Pour plus d'informations, consultez la section Les méthodes accesseurs de lecture et de définition.
Flash CS3
M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire
Page en cours: http://livedocs.adobe.com/flash/9.0_fr/main/00000063.html