Variables

Pour déclarer une variable, utilisez les mots-clés var ou const. Les variables déclarées avec le mot-clé var sont susceptibles de changer de valeur plusieurs fois au cours de l'exécution d'un script. Les variables déclarées à l'aide du mot-clé const sont appelées des constantes et on ne peut leur attribuer une valeur qu'une seule fois. Une erreur survient lors d'une tentative d'attribution d'une nouvelle valeur à une constante initialisée. Pour plus d'informations, consultez la section Constantes.

Variables statiques

Les variables statiques sont déclarées à l'aide de l'association du mot-clé static et de l'instruction var ou const. Les variables statiques sont affectées à une classe, plutôt qu'à une occurrence de classe. Elles permettent de stocker et de partager 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 bien le nombre maximal d'occurrences 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 maximum 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 occurrence particulière.

class StaticVars 
{ 
    public static var totalCount:int = 0; 
    public static const MAX_NUM:uint = 16; 
}

Un code extérieur à la classe StaticVars, ainsi que toutes ses sous-classes, ne peuvent faire référence aux 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); // output: 0 
trace(StaticVars.MAX_NUM); // output: 16

Comme il est impossible d'accéder à des variables statiques par une occurrence de la classe, le code suivant renvoie des erreurs :

var myStaticVars:StaticVars = new StaticVars(); 
trace(myStaticVars.totalCount); // error 
trace(myStaticVars.MAX_NUM); // error

Les variables qui sont déclarées avec les deux mots-clés static et const doivent être initialisées en même temps lors de la déclaration de la constante, tout comme la classe StaticVars le fait pour MAX_NUM. Il est impossible d'attribuer une valeur à MAX_NUM au sein du constructeur ou d'une méthode d'occurrence. Le code suivant générera une erreur, car ce n'est pas une façon valide d'initialiser une constante statique :

// !! Error to initialize static constant this way 
class StaticVars2 
{ 
    public static const UNIQUESORT:uint; 
    function initializeStatic():void 
    { 
        UNIQUESORT = 16; 
    } 
}

Variables d'occurrence

Les variables d'occurrence contiennent 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'occurrence, qui sont associées à des occurrences de classe plutôt qu'à la classe elle-même, sont utiles pour conserver des valeurs spécifiques à une occurrence. Par exemple, la classe Array dispose d'une propriété d'occurrence appelée length qui conserve le nombre d'éléments du tableau appartenant à une occurrence particulière de la classe Array.

Qu'elles soient déclarées avec le mot-clé var ou const, les variables d'occurrence 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 Méthodes accesseur get et set.