Dans sa structure globale, une classe est compose 4 parties bien distinctes.
- Déclaration de la classeavec nom, package.
- Déclaration des propriétés avec leurs port respectives, leurs types.
- Déclaration du constructeur de la classe.
- Déclaration des méthodes de la classe.
Par habitude, les
4 parties seront dans dans l'ordre de la liste ci dessus, bien que pour Flash, l'ordre des déclarations n'a pas d'importance.
Déclaration de la classe :
Pour déclarer une classe, il faut utiliser le mot clé class suivit du nom de votre classe. La définition de votre classe sera définie entre 2 accollades { }.
Par exemple :
Si votre classe fait partie d'un package, il faut spécifier ce package au niveau de la déclaration de la classe.
Par exemple, ma classe voiture fait partie du package com.dossier, alors la déclaration de ma classe devient :
ActionScript Code:
class com.dossier.Voiture
{
}
Rappel pour les packages, veuillez bien enregistrer votre classe dans le repertoire correspondant, exemple
com\dossier.
Déclaration des propriétés :
Comme nous l'avons vu précédemment, nous allons déclarer les différentes propriétés de notre classe. Petit rappel, les propriétés sont les "variables" de notre classe.
La déclaration devra comporter : * la portée de la propriété (public si non spécifiée).
- Le nom de la propriété.
- Le type de la propriété
- L'initialisation de la propriété (facultatif)
Par exemple :
ActionScript Code:
class com.dossier.Voiture {
private var _sFabricant:String;
private var _sModele:String;
private var _nAnnee:Number;
private var _nKilometres:Number;
private var _nIntervalle:Number;
}
Vous noterez l'utilisation du
caract _ devant les propriétés privées
Rien d'obligatoire, mais c'est une technique pour repérer la portée des propriétés du premier coup d'oeil. De plus, beaucoup de développeurs utilise cette notation.
Déclaration du constucteur :
Le constructeur est une méthode spéciale de la classe. Cette méthode doit imptivement portle nom de la classe déclarée. Le constructeur permet de créer une instance de la classe. Si aucun constructeur n'est défini, Flash va créer, implicitement, un constructeur vide.
Un constructeur est une méthode qui accepte des paramètres en entrée mais ne retourne jamais rien. Voici un exemple de constructeur pour la classe Voiture :
ActionScript Code:
class com.dossier.Voiture
{
private var _sFabricant:String;
private var _sModele:String;
private var _nAnnee:Number;
private var _nKilometres:Number;
private var _nIntervalle:Number;
function Voiture(sFabricant, sModele, nAnnee, nKilometres) {
_sFabricant = sFabricant;
_sModele = sModele;
_nAnnee = nAnnee;
_nKilometres = nKilometres;
}
}
Comme vous le constaterez, la portée du constructeur n'est pas définie ici.
Donc par défaut, la portée est publique.
Nous verrons plus tard qu'il est possible de déclarer un constructeur en portée privée.
Déclaration des méthodes :
Notre classe contient des propriétés, on peut l'instancier via le constructeur, maintenant, on voudrait bien que cette classe réalise quelques actions. La déclaration des méthodes est identique a déclaration de fonction en ActionScript.
La seule différence entre une méthode et une fonction, c'est la possibilite déclarer nos méthodes en portée publique, privée ou statique. Voyons quelques exemples simples de méthodes
pour la classe Voiture :
ActionScript Code:
public function conduire(nKMH:Number):Void {
if(nKMH == null || nKMH == 0) {
clearInterval(_nIntervalle);
}
else {
_nIntervalle = setInterval(this, "increment", 1000, nKMH);
}
}
private function increment(nKMH:Number):Void {
_nKilometres += nKMH;
}
Notez ici la déclaration d'une méthode publique et d'une méthode privée.Nous voilà donc maintenant
avec une classe complète :
ActionScript Code:
class com.dossier.Voiture
{
private var _sFabricant:String;
private var _sModele:String;
private var _nAnnee:Number;
private var _nKilometres:Number;
private var _nIntervalle:Number;
//Constructeur
function Voiture(sFabricant, sModele, nAnnee, nKilometres) {
_sFabricant = sFabricant;
_sModele = sModele;
_nAnnee = nAnnee;
_nKilometres = nKilometres;
}
public function conduire(nKMH:Number):Void {
if(nKMH == null || nKMH == 0) {
clearInterval(_nIntervalle);
}
else {
_nIntervalle = setInterval(this, "increment", 1000, nKMH);
}
}
private function increment(nKMH:Number):Void {
_nKilometres += nKMH;
}
}
Source : Adddvance.net