Introduction à la Programation Orientée Objet (ou OOP) - partie 1
La programation orientée objets, voilà un terme bien effrayant pour une technique bien simple et incroyablement utile. A partir de l'actionscript 3.0, Flash permet de faire de l'OOP comme jamais auparavant. Même s'il est encore un tout petit peu plus limité que certains de ses grands frères comme Java, il est néanmoins très intéressant de s'y intéresser.
D'abord, qu'est-ce que l'OOP ? Si vous avez fait un peu d'actionscript, 1.0, 2.0 ou 3.0, vous avez déjà souvent utilisé des objets. Les String, Number, XML, MovieClip, etc, sont tous des objets. Un objet est un élément qui est manipulable par flash. Il peut avoir des propriétés et des méthodes. Illustrons avec un MovieClip my_mc:
my_mc._xest une propriété de MovieClip.
my_mc.createEmptyMovieClip("newMc", 2) est une fonction spécifique de MovieClip. On appel ce genre de fonctions associé à un objet méthodes.
Vous suivez ?
Pourquoi des objets sont-ils utiles ? Imaginez que vous devez faire un site Flash où un employeur peut voir des infos sur ses employés. Il veut pouvoir, à tout moment, savoir:
- l'âge de l'employé
- son département
- son salaire
- le nombre d'années qu'il a passé dans l'entreprise
De plus, en un simple clic, il veut pouvoir:
- se faire envoyer un email avec toutes ces données
- envoyer un simple email à cet employé avec une petite phrase.
Vous devriez donc créer, pour chaque employé, des variables:
- var employe01_age:Number;
- var employe01_departement:String;
- var employe01_salaire:Number;
- var employe01_fidelite:Number;
imaginez que vous ayez 20 employés à enregistrer dans votre petite application...Ca en fait des variables à gérer. Et je ne vous dis pas le nombre de fonctions:
- getAgeEmploye01();
- getDepartementEmploye01();
- getSalaireEmploye01();
- getFideliteEmploye01();
- getAllDataEmploye01(); <- envoi de mail au patron
- sendEmailEmploye01("voici le texte qu'il recevra"); <- envoi de mail à l'employé
Tout ça x20 ! (bien entendu, il y aurait des façon bien plus simple de gérer tout ça, avec des Arrays par exemple...mais soyons dramatique)
Et si on créait, simplement, un objet Employe ? Où, lorsqu'on le crée, on écrit simplement:
var employe01:Employe = new Employe(age, "departement", salaire, fidelite);
Et pour chaque employé, on pourra faire appel aux propriétés:
- employe01.age
- employe01.departement
- employe01.salaire
- employe01.fidelite
De plus, pour envoyer les mails:
- employe01.getAllData();
- employe01.sendEmail("Bougez vous Dupont !");
