Vocabulaire à connaître de la POO

Publié dans PHP objet | Marqué avec , , , , , ,
Share

Voici quelques mots de vocabulaire qu’il peut être utile de connaître pour s’y retrouver en programmation orientée objet. Je complèterai cette liste au fil du temps. (en fonction de mes souvenirs et de mes découvertes)

  • Classe : Permet de définir la structure d’un objet qui pourra ensuite être utilisé plusieurs fois avec des options différentes, et dupliqué à loisir par le biais de classes filles. Mot clef : class
  • Instance : Une classe définie et chargée. Une instance (un objet) est donc utilisable concrètement, alors qu’une classe. Mot clef : new
  • Objet : Instance d’une classe
  • Attribut ou Propriété : Variable d’une classe. Mot clefs : var ou const
  • Méthode : Fonction d’une classe. Mot clefs : function
  • Surcharge ou polymorphisme Ad hoc : Permet de définir des méthodes avec le même nom et ayant des fonctionnalités similaires (ex : afficher(), supprimer()) dans des classes héritant d’une même classe mais n’ayant pas d’autres liens entres elles. On parle ainsi de surcharge d’une méthode lorsque l’on redéfinie une méthode qui avait déjà été définie dans une classe parente. Ex : fonction trier() qui fonctionnera pour trier des livres ou des CD sans que le programmeur se souci du nom de la méthode.
  • Attribut ou méthode magique : Attribut ou méthode commençant généralement par deux underscores (__) , étant apparu dans PHP 5, et ayant des fonctionnalités impossible à coder « à la main » comme par exemple le déclenchement d’une méthode lors de l’instanciation d’une classe ou la suppression d’une instance. Ex : __construct, __clone, __toString
  • Méthode prédéfinie : Méthode déjà définie par PHP. Ex : get_parent_class, class_exists
  • Héritage : Notion permettant qu’une classe (dites fille) hérite des attributs et des méthodes d’une autre classe (dites parente). Mot clef : extends
  • Constructeur : Méthode permettant de créer un objet en instanciant une classe. Mot Clef : __construct($params)
  • Interface : Définie une liste de méthodes que doit contenir les classes qui implémentent cette interface. Mot clef : interface

2 réponses à Vocabulaire à connaître de la POO

  1. DarK

    Yo BN, une question… Une classe au final, est-ce qu’on pourrait définir un peu ça comme étant une structure en C. Ca semblerait bizarre vu qu’en C on dispose déjà de structures, et qu’on parle pas vraiment de POO. Mais d’après tout ce que j’ai lu sur le sujet, c’est de ça que ça se rapprocherait le plus.

    Au fait, j’aime beaucoup le concept du blog, et son design aussi ;).

  2. BN

    Hmm, j’ai envi de dire : oui et non. Puisqu’en C, dans ta structure tu définies plusieurs variables (du type que tu veux, et ça peut être un pointeur vers une autre variable) que tu remplis ensuite comme tu veux.
    Alors qu’une classe en PHP (et j’imagine en C++, j’en n’ai jamais fait, mais je crois que le C++ c’est de l’objet) tu définies des variables (attributs) que tu peux modifier (ou non) à l’extérieur de l’objet (une instance de la classe) et aussi des fonctions (méthodes) qui font tout ce que tu veux et encore plus.

    Moi, ça me fait plus penser aux modules en C (ou en programmation en général), je ne sais pas si tu en as entendu parler. Mais en gros, lors de la phase de réflexion, tu sépares ton gros programme en différentes parties que sont tes modules (contenant des fonctions autre que main(), et pourquoi pas des variables comme des constantes) et, une fois que tu les as codé, tu les assembles tous à l’aide d’une fonction main() pour obtenir au final ton gros programme qui marche bien.
    Je t’avouerais bien que je commence à bien comprendre le concept de classes pour des parties de site, mais j’ai encore du mal à voir comme agencer tes classes dans un site tout en PHP objet.

    Merci pour le blog ^^ Quant au design, il n’est pas de moi, j’ai juste modifié 2-3 babioles et j’espère bien continuer dans cette voie !

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*