ActionScript 3 – Programmation séquentielle et orientée objet
30
Nous avons remplacé la seule ligne d’instruction contenue dans le constructeur par un
appel de la méthode afficherHeure. Cette dernière peut être appelée à tout moment,
uniquement à partir de la classe.
private ou public ?
Dans notre exemple, nous ne définissons qu’une seule classe. Nous pourrions être
amenés à en gérer plusieurs et, de ce fait, à utiliser, pour certaines méthodes et propriétés,
des noms identiques. Afin que ces méthodes et propriétés ne soient accessibles que dans
la classe où elles ont été déclarées, nous employons le spécificateur de contrôle d’accès
private.
C’est précisément le cas dans notre script, où nous souhaitons que la fonction (la
méthode) afficherHeure() de la classe AfficherMessage ne puisse être appelée qu’à partir
de cette dernière et non pas d’une autre classe. Nous spécifions donc que la méthode est
de type private.
En revanche, si nous souhaitions qu’une méthode déclarée dans une classe puisse être
accessible à partir d’une autre, nous utiliserions le spécificateur de contrôle d’accès
public.
Le fait qu’une méthode soit de type public ou private permet donc de définir sa portée,
mais autorise également la réutilisation d’un nom identique dans d’autres classes pour
définir de nouvelles méthodes aux fonctionnalités différentes.
Consultez le chapitre 7 dédié aux variables pour des explications supplémentaires sur les
mots-clés private et public.
Remarque
Pour afficher correctement l’heure sur la scène au chargement de l’animation, il faudrait ajouter un texte
dynamique sur la scène (nom d’instance : zoneAffichage) et remplacer la ligne d’instruction
trace("Bonjour, il est 6h31"); par les lignes suivantes :
var instantTemps:Date = new Date();
var heures:Number = instantTemps.getHours();
var minutes:Number = instantTemps.getMinutes();
zoneAffichage.text = "Il est "+heures+"h"+minutes;
L’ajout d’un texte dynamique sur la scène nécessite d’insérer la ligne ci-après à la suite du premier import
de classe :
import flash.text.TextField;
Portée d’une fonction ou d’une variable
Nous entendons par portée d’une méthode, l’étendue et la disponibilité du code contenu dans la fonction
(la méthode). Certains développements vous conduiront à créer plusieurs classes. Si vous souhaitez limiter l’action d’une méthode à une seule classe, vous allez en fait limiter la disponibilité de la méthode à
cette classe, et donc restreindre sa portée. Le terme portée inclut une notion de propagation du code.
Précédent

- 58/426

Suivant