Qu'est-ce que la programmation object ?

Qu'est-ce que la programmation object ? - PHP - Programmation

Marsh Posté le 27-09-2005 à 17:38:14    

Ouai, je lis souvent ça, ça ne me concernait pas trop avant, mais il parait que c'est super en PHP5, mon problème, c'est que je n'ai aucune idée de ce que c'est.
J'ai déjà lu quelques docs là dessus, mais ça me gave vite.
J'aurais donc préféré avoir une définition d'utilisateur, pas un manuel scolaire.
Si vous aviez des exemples aussi, en PHP, tant qu'à faire, pour que je comprenne bien le concept.
 
Merci d'avance.

Reply

Marsh Posté le 27-09-2005 à 17:38:14   

Reply

Marsh Posté le 27-09-2005 à 18:29:17    

The-Shadow a écrit :

J'ai déjà lu quelques docs là dessus, mais ça me gave vite.


Tu veux qu'on te rédige un executive summary, feignasse ? [:dawa]
 
Question déjà posée 100 fois sur ce forum => RECHERCHE.
 
 
Et on va encore bien entendu critiquer l'accueuil sur ce forum. [:kiki]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 27-09-2005 à 18:31:04    

[:petrus75]
 
http://fr.wikipedia.org/wiki/Progr [...] %A9e_objet
http://en.wikipedia.org/wiki/Object_oriented
 
(ah oui, et que ça te plaise ou non, l'article anglais est bien plus long et complet que la VF)


Message édité par masklinn le 27-09-2005 à 18:32:01

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 27-09-2005 à 18:31:19    

Je me permets bien entendu de te malmener car tu n'es pas un noob sur ce forum, entendons-nous bien, c'est en toute courtoisie.
 
 [:moundir]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 27-09-2005 à 18:31:54    

Masklinn le bienveillant. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 27-09-2005 à 18:42:52    

Ah oui, aussi, en toute amitié, corrige ton titre : je n'ai rien contre l'utilisation de l'Anglais, mais ce mélange french-english... :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 27-09-2005 à 19:13:47    

sircam a écrit :

Question déjà posée 100 fois sur ce forum => RECHERCHE.


L'avantage, c'est que comme je n'y comprend rien, j'espérais effectivement que quelqu'un d'intelligent me développe sa vision de la chose avec des exemples pratiques en PHP, tant qu'à faire, histoire que je pige mieux.
Mais espérer que quelqu'un d'intelligent, de patient et de suffisamment passionné par son sujet pour m'expliquer exemples à l'appuies si possible, effectivement, je ne sais pas ce qu'il m'a pris, si y'avais autre chose que des soit disant pro qui préfèrent perdre leur temps à chier sur les sites persos avec arrogance, ça se saurait.
 
Bon, peut-être quelqu'un qui correspond passera-t-il par là.
 

Reply

Marsh Posté le 27-09-2005 à 19:31:59    

http://www.amazon.fr/exec/obidos/A [...] 80-9703414 Comme intro en français à l'OO tu trouveras pas mieux.

Reply

Marsh Posté le 27-09-2005 à 19:43:30    

... pffff vraiment jsuis bonne poire sur ce coup, allez jme lance, version "TT"
 
- tu prends un objet "fruit"
- dans ces fruits y'a des poires (dont moi, évidemment), y'a aussi des pommes, des bananes et autres
- grace à une poire, tu peux faire une tarte aux poires, tu peux faire un clafouttis au poires, un sorbet aux poires ...
- grace à une pomme, tu peux faire une tarte aux pommes (si si), un jus de pomme, et plein de truc qui te donnent la courante (car la pomme est un diuréthique) ...
- grace à une banane, tu peux te casser la tronche, faire de la super bonne creme glacée, ...
 
- tu peux utiliser et réutiliser des poires pour faire pleins de choses
- tu peux aussi utiliser et réutiliser des pommes pour faire pleins de choses
 
- par contre avec une poire, tu vas pas faire de raclette, non non non
- et avec une pomme, tu vas pas faire de roti de dindonneau, ah ça non
 
 
La programmation objet c'est pareil :
- tu développes des objets qui appartiennent à des classes d'objets
- ces objets peuvent etre utilisés et réutilisés pour faire certaines taches, mais pas d'autres
- chaque objet (avec ses propres propriétés) peut avoir des sous-objets (avec ses propres propriétés) et des sous-objets de sous-objets (avec ses propres propriétés aussi) :
* une pomme granny fait partie de la catégorie des pommes (donc avec des pépins), et les pommes appartiennent à la classe des fruits (donc sucré ... ok tous les fruits sont pas tous sucrés, mais c'est pour l'exemple... non mais :P). Donc une pomme granny aura des pépins, et sera sucrée ! simple & clair, non ?
 
 
La programmation objet avec php, c'est pareil que la programmation objet avec java ou autre. C'est de la programmation objet, point final à la ligne. (ok ensuite y'a le langage utilisé qui change, mais c'est un "détail" )
 
Tu m'excuseras, mais jte ferais po d'exemple en php, de peur d'attirer les foules de codeurs invétérés ...
Déjà que si avec cette démonstration version tt je n'ai pas de super remarques désobligeantes, ça sera pas mal ;)


---------------
dieu créa l'homme et meuh fit la vache
Reply

Marsh Posté le 27-09-2005 à 20:43:10    

Merci à vous.
Mais j'ai du mal à piger j'avoue. :/
J'ai surtout du mal à piger ce qu'il y a de super. Quand PHP5 était annoncé, super, avec plein de POO, sur les forums spécialisés, tout le monde disait "super", "enfin", etc.
Et concrètement, je n'arrive pas à voir ce que ça apporte. :/
Désolé, j'suis chiant, mais j'arrive pas à comprendre le truc. :'(

Reply

Marsh Posté le 27-09-2005 à 20:43:10   

Reply

Marsh Posté le 27-09-2005 à 20:50:58    

The-Shadow a écrit :

mais j'arrive pas à comprendre le truc. :'(


bah quant tu auras pigé les tenants et les aboutissants de la POO, tu comprendras pourquoi de PHP4 à PHP5 tout le monde dit "super", en attendant ... faut attaquer sévèrement les bases ...
 

Code :
  1. class etre_vivant{
  2. function respirer(){
  3. }
  4. }
  5. class bipede extends etre_vivant{
  6. function marcher(){
  7. }
  8. }
  9. class humain extends bipede{
  10. function parler(){
  11. }
  12. }


 
donc  
un "etre_vivant" respire
un "bipede" respire, marche
un "humain" respire, marche et parle


Message édité par shakpana le 27-09-2005 à 20:51:20
Reply

Marsh Posté le 27-09-2005 à 20:52:18    

Sauf erreur de ma part, Php5 apporte un moteur qui prends en compte plein d'objets déjà tout faits, et pleins d'objets permettant de manipuler tes objets à toi simplement.
 
J'en appelle à une confirmation ...
 
Concernant ce qu'il y a de super, la POO apporte surtout la réutilisabilité : tu prends des objets, tu les manipules dans tous les sens pour te donner des choses différentes. Tu vas pouvoir créer un objet "Moulineuse" et ça va te servir autant pour te faire une tarte aux pommes, qu'un coulis de banane, qu'une sauce de doigts, que blablabla ....
 
La manipulation d'objets c'est magique parce que tu ne t'ennuies pas à recoder tout un OS, il te suffit de créer une instance d'objet et ça fonctionne sans meme que tu saches comment ça a été codé.


---------------
dieu créa l'homme et meuh fit la vache
Reply

Marsh Posté le 27-09-2005 à 23:07:56    

The-Shadow a écrit :

Merci à vous.
Mais j'ai du mal à piger j'avoue. :/
J'ai surtout du mal à piger ce qu'il y a de super. Quand PHP5 était annoncé, super, avec plein de POO, sur les forums spécialisés, tout le monde disait "super", "enfin", etc.


Ouais enfin c'est PHP aussi [:petrus75]

Citation :

Et concrètement, je n'arrive pas à voir ce que ça apporte. :/
Désolé, j'suis chiant, mais j'arrive pas à comprendre le truc. :'(


Le principe de base de la POO, c'est que chaque chose peut être considérée comme un tout défini par 3 choses:

  • Son nom
  • Ses données
  • Ses comportements.


Le nom, c'est l'objet.
Les données, ce sont les membres de l'objet
Les comportements, ce sont les méthodes (fonctions) de l'objet.
 
Un objet sépare le "monde" en deux parties de son point de vue: ce qui est à l'intérieur et ce qui est à l'extérieur, on dit donc qu'un objet crée un namespace (un espace de noms, des éléments séparés du reste). L'objet peut habituellement accéder directement à l'extérieur, mais l'extérieur ne peut accéder à son intérieur (ses membres et ses méthodes) qu'à travers lui, c'est le but du "$machin->" en PHP ou du "machin." dans d'autres langages comme le Python ou le Java.
 
Le but d'un objet, c'est de copier la réalité, parce que dans la réalité la pluspart des choses sont des objets, intépendants les uns des autres ou liés les uns aux autres (dans un objet plus grand). Même les données sont des objets eux mêmes, seule l'information n'est pas un objet (c'est pour ca que dans les langages les plus évolués tout est un objet, la donnée n'est pas accessible à l'utilisateur qui ne peut la voir que via des objets-interfaces)
 
par exemple un bouton sur ta chaîne stéréo est une partie de la chaîne (un membre), mais c'est aussi un objet en tant que tel, il a une forme, une taille, une couleur, une texture (ce sont ses données), il peut avoir un état (encore une donnée), on peut souvent l'enlever, même si ça revient à casser la chaîne, et il a des comportements (enfin pas beaucoup, un, "presser" qui va changer son état).
 
La POO, c'est simplement essayer de s'approcher un peu plus informatiquement de la réalité du monde.
 
Après, il y a le problème de l'implémentation, les langages sont plus ou moins armés de ce côté là, et la POO a été intégrée à la massue dans PHP5, et franchement pas de belle manière.
 
Si tu veux bosser un peu plus dessus, essaie de trouver des docs sur le Ruby, c'est un langage qui a été construit autour du concept d'objet, extrèmement propre, et logique jusque dans sa syntaxe (puisqu'il est conseillé, quand on pose une question à un objet [pour connaître ces données], de finir le nom de la méthode d'accès par un "?" [:ddr555] genre pour connaitre la couleur de mon bouton en ruby je vais écrire "button.color?" ). Si tu ne trouves rien que tu puisses utiliser en Ruby, vas voir du côté de Python, il est un peu plus fonctionnel que Ruby mais reste extrèmement orienté objet (bien plus que Java ne l'est, ou que PHP ne le sera jamais).


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-09-2005 à 09:42:36    

Shadow> Vraiment, les bases de la POO ont déjà été exposées des centaines de fois. Même sur ce forum, je me rappelle de l'exemple comique de la "petite patate".
 

Citation :

Le but d'un objet, c'est de copier la réalité


Plutôt de la modéliser.
 
Pour le reste, oui, en PHP, ça sent l'intégration à la pelle à clous pour pas rester à la traîne et t'as envie d'en faire, c'est clair. [:pingouino]
 


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 28-09-2005 à 09:43:13    

sircam a écrit :

Citation :

Le but d'un objet, c'est de copier la réalité


Plutôt de la modéliser.


OSEF, s'pareil [:dawao]

Message cité 1 fois
Message édité par masklinn le 28-09-2005 à 09:43:44

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-09-2005 à 09:54:31    

masklinn a écrit :

OSEF, s'pareil [:dawao]


Tu ne copies pas la réalité. D'ailleurs, selon le contexte, tu modélises différemment. Tu ne fais que capturer les éléments qui sont pertinents in casu.   [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 28-09-2005 à 13:12:47    

A la rigueur histoire de savoir comment ca marche l'objet il peut se mettre à BlueJ
ca permet d'avoir une bonne vision de la programmation objet (pour Java, oui oui je sais)
 
http://www.bluej.org/tutorial/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed