IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Programmation orientée objets en Perl > Introduction
         Qu'est ce que la Programmation Orientée Objet (POO) ?
         Qu'est ce que l'héritage de classe ?
         Qu'est ce que la surcharge de méthode ? Le Polymorphisme ?
         Qu'est ce que l'encapsulation ?
         Comment Perl implémente-t-il la POO ?
         Les Objets en Perl, comment les définir ?
         Quelle est la différence entre une méthode et une fonction d'un module ?

rechercher
precedent    sommaire    suivant    telecharger


Qu'est ce que la Programmation Orientée Objet (POO) ?
auteur : Woufeil
La POO est une philosophie (bien que l'on dise plutôt un paradigme) de programmation reposant sur deux notions essentielles : l'abstraction et la classification. Elle se base sur la création de classes. Une classe est un type de données permettant de décrire ce que l'on appelle un objet à l'aide de variables et de méthodes. Ainsi, si nous devions définir une classe « humain », elle comprendrait sûrement les variables nom, prénom sexe, nationalité... Une méthode est une fonction (ou une procédure) permettant de décrire un comportement. Par exemple, notre classe humain devrait comprendre les méthodes marcher, parler, manger, dormir... Un objet est donc une instance d'une classe. Par exemple, Mr Dupond est un objet de la classe humain. En tant que tel, il est donc doté des variables sexe (qui vaudra masculin pour lui), nom (Dupond), prénom (disons Jacques) et de toutes les autres définit dans la classe Humain. Il dispose également des méthodes propres à la classe humain, Mr Dupond peut donc parler, marcher, manger, dormir... Une fois conçue, une classe doit être considérée comme une boîte noire : on l'utilise sans ce soucier de comment elle fonctionne, comme avec une télévision par exemple. C'est la notion d'abstraction.


Qu'est ce que l'héritage de classe ?
auteur : Woufeil
L'héritage permet de définir des relations « est un » (IS A) entre plusieurs classes. C'est la notion de classification. Ainsi, on peut dire que l'humain est un mammifère, qui est lui même un animal. En tant que mammifère, l'homme hérite des propriétés des mammifères, comme le fait d'avoir quatre membres, des poils... Il hérite aussi des méthodes de cette classe. Ainsi un homme comme tout mammifère peut bouger. A cet héritage la classe humain ajoute des particularités, comme la méthode « parler », ou la variable nationalité. On dit que la classe humain hérite de la classe mammifère. Mammifère est la classe parente et humain est la classe fille. Comme un humain est un mammifère, on peut utiliser le premier à la place du second (et pas l'inverse, un mammifère n'étant pas un humain). Ainsi, si un sous programme attend comme argument un mammifère, on peut lui passer un humain sans qu'il n'y est de problèmes.


Qu'est ce que la surcharge de méthode ? Le Polymorphisme ?
auteur : Woufeil
Une classe fille peut redéfinir les méthodes d'une classe parente. Ainsi, la classe mammifère a une méthode se déplacer mais la classe cheval peut avoir envie de surcharger (redéfinir) cette méthode en précisant qu'un cheval peut marcher au pas, au trot et au galop. On dit que la méthode marcher de mammifère a été surchargée par celle de la classe cheval. Mais que ce passe-t-il si une fonction qui attend un mammifère comme argument reçoit un cheval et que cette fonction appelle la méthode se déplacer ? Dans ce cas la méthode appelée sera la méthode redéfinie dans la classe cheval. Mais si la fonction reçoit un humain et que cette dernière classe n'a pas redéfinie la méthode se déplacer, la méthode appelée sera celle de la classe mammifère. Cette propriété de choisir quelle méthode appeler en fonction de l'argument passé à la fonction s'appelle le polymorphisme.


Qu'est ce que l'encapsulation ?
auteur : Woufeil
Enfin, une dernière propriété chère à la POO est l'encapsulation. Elle permet de définir que les membres d'une classe (variables et méthodes) sont privés ou publics. Un membre public est accessible à partir de n'importe quel point du programme, un membre privé n'est utilisable qu'au sein de la classe elle même. Il existe aussi la notion de membre protégé, ce dernier ne sera utilisable que dans la classe elle même et dans ses classes filles.


Comment Perl implémente-t-il la POO ?
auteur : Woufeil
Depuis peu, Perl supporte la POO. Pour l'implémenter, les développeurs de Perl ont choisis de réutiliser un maximum de choses plutôt que d'en créer beaucoup de nouvelles. Ainsi, une classe est un paquetage (ou module), un objet est un référent et une méthode est une fonction (ou une procédure).


Les Objets en Perl, comment les définir ?
auteur : Woufeil
Un objet est une référence (vers une table de hachage le plus souvent), ou plutôt son référent. La distinction entre une référence vers un objet et l'objet lui même étant souvent brouillée par les programmeurs Perl, on dit souvent qu'un objet est une référence. J'utiliserais donc cette métonymie de temps en temps. Le référent d'une référence vers une table de hachage pouvant contenir des données complexes (des scalaires, des tableaux, des tables de hachages, des tableaux de tableaux...) et les associer à une chaîne de caractère, il est très approprié pour contenir un objet. Par exemple, si l'on déclare $dupond comme objet de la classe humain (ou plutôt comme référence vers cet objet), $dupond->{nom} représente son nom, $dupond->parler() représente la méthode parler appliquée à l'objet dupond.


Quelle est la différence entre une méthode et une fonction d'un module ?
auteur : Woufeil
Une méthode est une fonction un peu particulière de par son premier argument (ou paramètre, c'est la même chose). Il existe deux types de méthodes :
  • les méthodes de classe qui s'appliquent à toute une classe (typiquement une méthode pour construire un objet de la classe). Une méthode de classe reçoit comme premier paramètre le nom du paquetage (c'est à dire le nom de la classe) utilisé.
  • les méthodes d'instances qui ne s'applique qu'à un objet de la classe (comme la méthode parler()). Une méthode d'instance reçoit en premier paramètre la référence vers l'objet avec lequel elle a été appelée (dans notre cas une méthode d'instance s'appliquant à l'objet dupond recevrait donc $dupond comme premier argument).


rechercher
precedent    sommaire    suivant    telecharger

Consultez les autres F.A.Q's

Valid XHTML 1.1!Valid CSS!


Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.