Pourquoi la programmation orientée objet
La programmation orienté objet n'est que peu utilisée en javascript, mais de nombreux langages l'utilise,
pourtant la programmation orientée objet permet de réduire des codes parfois très longs
Quesque ce P2O ??
Quesquun objet.
Un objet (comme une voiture) à des caractéristiques :
une forme, une taille, une couleur.
Ainsi la programmation orienté permet de créer des modèles appelées classe.
Dès que l'on utilise ce modèle (la classe) on dit que l'on créer un objet de cette classe.
Tous les caractéristiques de ce modèles ("une forme, une taille, une couleur.") s'appellent membres
Exemple:
je définis une classe appelée voiture et je lui donne des caractéristiques :
chaque voiture à une marque, un modèle, une couleur, un kilométrage...
en ligne de codes :
<script language=javascript>
function clvoiture (){// remarquer que l'on utilise function pour creer une classe et c'est pour cela que je rajoute cl et ainsi presenter que c'est une classe ....
var modèle;
var marque;
var couleur;
var kilometres;
}
</script>
Intégrer des déplacements
Imaginons que notre voiture soit en état de marche ...
Je veut bien que le modele , la marque , la couleur (quoique ) ne change pas qu'on avance mais les kilometres
c'est ainsi qu'il faut une fonction appellée methodes pour ajouter des kilomètres au compteurs.
Exemple codé:
<script language=javascript>
function mclavance (durée, vitesse)// et oui (faisant simple vitesse en k/h et la durée en h
{
this.kilometres += durée * vitesse;
}
function clvoiture (){
var modèle;
var marque;
var couleur;
var kilometres;
var avance ;
this.avance = mclavance; // pas de parenthèse ici...
}
</script>
Une classe je connais , mais comment l'utiliser ??
Sachez que vous faites des classes depuis que vous faites du javascript.
Et oui n'avez vous jamais écrit:
tab = new Array(8,16);// cela crée un tableau avec un 8 et un 16 ...
longueurtab = tab.lenght;
mais aussi :
var chaine = "la classe";
longueurchaine = chaine.lenght;
Pour plus de connaissances sur les arrays...
http://www.commentcamarche.net/javascript/jsarray.php3
Voila un exemple pour ma voiture..
<script language=javascript>
function mclavance (durée, vitesse)// et oui (faisant simple vitesse en k/h et la durée en h notez le mcl.. (membres d'une classe)
{
this.kilometres += durée * vitesse;
};
function clvoiture (){
var modèle;
var marque;
var couleur;
var kilometres;
var avance
this.avance = mclavance; // pas de parenthèse ici...};
voiture1 = new clvoiture;
voiture1.modèle = "espace";
voiture1.marque = "renault";
voiture1.couleur= "rouge";
voiture1.kilomètres = 0;// elle est surement neuve...
voiture1.avance(1.5,30);// elle roule 1.5 h et a 30 ... Paris est encombré, heureusement que c'est celle de mes parents ...
</script>
Quelques trucs utiles...
clvoiture est une fonction vous pouvez ainsi lui passer des arguments ("new Array(8,16);");
exemple codé:
<script language=javascript>
function mclavance (durée, vitesse)// et oui (faisant simple vitesse en k/h et la durée en h
{
this.kilometres += durée * vitesse;
};
function clvoiture (modele,marque,couleur,kilometres){
// var modèle = modele; NE MARCHE PAS donc:
var modèle;
this.modèle = modèle;
var marque;
this.marque = marque;
var couleur;
this.couleur = couleur;
// le javascript étant très tolérant : on peut faire ceci:
this.kilometres = kilometres;
var avance
this.avance = mclavance; // pas de parenthèse ici...
};voiture1 = new clvoiture("espace","marque","grise",0);
voiture1.avance(1.5,30);// elle roule 1.5 h et a 30 ... Paris est encombré, heuresement que c'est celle de mes parents ... ETdes parenthèses ET ondit avance;
// sachez que la voiture a maintenant 45 kilometres....
</script>
Sachez que les objets sont des variables donc passable en arguments ...
Une hierachie ....
Pensez qu'il existe des camions (et des cars(au sens français) ..)et que pour eux il faut rajouter des caractéristiques en plus (chauffeur,...)
Ainsi les classes ont une hiérarchies et peuvent ainsi récupérer des propriétés de leurs aînées ...
<script language=javascript>
function mclavance (durée, vitesse)// et oui (faisant simple vitesse en k/h et la durée en h
{
this.kilometres += durée * vitesse;
};
function clvoiture (modele,marque,couleur,kilometres){
this.modèle = modèle;this.marque = marque;
this.couleur = couleur;
this.kilometres = kilometres;
this.avance = mclavance; // pas de parenthèse ici...
};
sclcamion.prototype = clvoiture();
function sclcamion (modele,marque,couleur,kilometres,chauffeur)
{
this.parent = climg;
this.parent(plx, ply, tx, ty, src, nom);
this.chauffeur =chauffeur;
};
</script>
Voila je pense que le problème a été traité; bonne classification ...
n'hésitez pas à rajouter des commentaires...