Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PRESENTATION DE LA PROGRAMMATION ORIENTÉE OBJET (P2O)


Information sur le tutorial

Catégorie :Tutoriaux Date de création : 26/06/2005 20:23:24 Vu : 6 468 fois

Note :
5,33 / 10 - par 3 personnes
5,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Voici un tutoriel qui vous expliquera pourquoi et comment programmer objet en javascript

Tutorial

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 ??

Quesqu’un 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...

 

 

                                                                                 

 

signaler à un administrateur
Commentaire de Arto_8000 le 30/06/2005 00:53:03

Je connaissait déjà ça ,mais je trouve que c'est très bien expliquer.Je mets 10.

signaler à un administrateur
Commentaire de Ricou13 le 02/08/2005 12:21:50

Quand tu as pompé, en les raccourcissant, les codes de ce tutoriel : http://www.aidejavascript.com/article38.html,
tu t'es trompé, concernant la classe camion, en recopiant ton code plutot que l'original :

La sous-classe Camion

On va créer une nouvelle classe des camions qui sera une sous-classe de la classe Vehicule :

Camion.prototype = new Vehicule() ;

function Camion(marque, modele, numero, km, prix, PU, PTC) {
   this.parent = Vehicule;
   this.parent(marque, modele, numero, kms, prix);      
   this.PU = PU;
   this.PTC = PTC;
}

function Camion_afficher() {
  return this.marque + " " + this.modele + " " + this.numero + " " + this.km + " kms " + this.prix + " € " + this.PU + " " + this.PTC + "<br>";

Le lien d’héritage

Le lien d’héritage entre la classe Camion et la classe Vehicule a été créé par Camion.prototype = new Vehicule();. Ainsi que par les 2 premières lignes du constructeur Camion().

Je te met donc 1 pour ne pas avoir cité ta source qui est beaucoup plus complète.

signaler à un administrateur
Commentaire de rrk275 le 22/09/2005 20:40:34

sache que c'est en partie vrai en regardant le commentaire je me suis dit c'est totalement faux mais en regardant ton site. J'ai effectivement que c'étais celui ci que j'avais utilisé (pour apprendre) et ma memoire (inconsciente) a repris cet exemple.

totalement confus....

signaler à un administrateur
Commentaire de x1fabrice1x le 05/06/2007 02:39:50

Il manque des nombreuses notions:
- prototype,
- hasOwnProperty,
- new Object().
- copie d'objets
- objets imbriqués.


Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,031 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.