Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

21sept/084

Flex ActionScript – Getter/Setter en ActionScript 3

Il y a deux types de méthodes spéciaux appelés: implicit getter et setter. Elles sont déclarées comme des méthodes, mais elles sont accessibles comme si elles étaient des propriétés public. Les déclarations de ces méthodes sont identiques à celles des méthodes normales, à part pour les points suivants:

  • Les méthodes getter utilisent le mot-clé get
  • Les méthodes setter utilisent le mot-clé set
  • Les méthodes getter n'attendent pas de paramètres et retournent une valeur
  • Les méthodes setter attendent un seul paramètre et doivent être déclarées avec le type de return void


L'exemple suivant déclare une méthode getter et setter, chacune appelée sampleProperty. Dans cet exemple, une nouvelle propriété private est déclarée en utilisant les méthodes getter et setter comme des accessors. Ce n'est pas requis pour les méthodes getter et setter mais c'est un cas d'utilisation commun:

 package com.exemple{
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	public class Exemple {
		private var _loader:URLLoader;
		static private var instance:Exemple;
		static public const TEST:String = “test constante”;
		private var _sampleProperty:String;

		public function get sampleProperty():String{
			return _sampleProperty;
		}

		public function set sampleProperty(value:String):void{
			_sampleProperty = value;
		}

		public function Exemple():void{
			_loader = new URLLoader();
		}

		public function traceMessage(message:String):void{
			trace ("Votre message est " + message);
		}

		static public function getInstance():Exemple{
			if (_instance == null){
				_instance = new Exemple();
			}
			return instance;
		}
	}
}

Le code suivant crée une instance de la classe Exemple, et écrit/lit une valeur vers/depuis l'instance en utilisant les méthodes getter et setter:

var exemple:Exemple = new Exemple();
exemple.sampleProperty = "A";   // Appelle le setter, en lui passant A comme paramètre
trace (exemple.sampleProperty); // Appelle le getter
Remplis sous: ActionScript || Taggé comme: , , , Laisser un commentaire

Articles similaires

Commentaires (4) Trackbacks (1)
  1. Bonjour,

    Est-ce que le getter peut-être public et le setter private ?

    Merci

  2. Bonjour Tannoy,

    Il n'y a aucun interêt à ce que le setter soit déclaré en tant que méthode "private", étant donnée que le but même du setter est d'implémenter une propriété directement de l'extérieur de la classe.

  3. Quel intérêt ont ces méthodes par rapport à des setters et getters traditionnels du style : getSampleProperty() et setSampleProperty().

    Certes cela les rend accessibles comme si elles étaient des propriétés public, mais je trouve que ça apporte de la confusion. On ne sait plus si on manipule directement une variable publique ou des méthodes.

  4. Si tu veux bien encapsuler tes classes, tu ne dois pas avoir de propriétées publiques …


Leave a comment

(required)