Fondements de la POO

CLASSE (Class)

Une classe est un moule d'objet. Elle décrit les attributs et les méthodes de toute une famille d'objets.


Une classe définit en particulier un type d'objet.


Les objets d'une même classe auront des attributs de même type, mais avec des valeurs différentes.


Une classe est la description générale d'une famille d'objet et un objet est une instance de classe. On parle d'instanciation.

Exemple :

Dans ce programme qui comporte 3 boutons, TSpeedButton est une classe de bouton comportant une image.

SpeedButton1, SpeedButton2 et SpeedButton3 sont des instances de la classe TSpeedButton.

L'image est une propriété de la classe et on remarque que chaque instance à une image différente.


Le polymorphisme

Le mot Polymorphisme vient du grec et veut dire de formes différentes.


Le polymorphisme permet d'avoir des méthodes (polymorphisme ad-hoc), des attributs (polymorphisme paramétrique) de même nom, avec des fonctionnalités similaires, dans des classes sans aucun rapport entre elles (si ce n'est bien sûr d'être des filles de la classe objet).


Par exemple, la classe texte et la classe image dans un logiciel de traitement de texte peuvent avoir chacune une méthode "afficher". Cette méthode à la même action alors qu'elle manipule des objets différents.


L'héritage est une forme particulière de polymorphisme

L'héritage (Herited)

L'héritage est un mécanisme par lequel on définit une classe d'objet comme étant un cas particulier d'une classe plus générale.

Les classes peuvent être imbriquées à l'infini, et l'héritage s'accumule automatiquement. Cette structure est arborescente et s'appelle une hiérarchie de classe.

C'est grâce à l'héritage que l'on obtient une réelle "réutilisabilité" du code, une maintenance facilité et surtout une grande évolutivité. Toutes les "classes enfants" héritent des fonctionnalités écrite dans la "classe parent".


Exemple

Soit l'objet animal possédant les propriétés COULEUR, SEXE, APPETIT et les méthodes DORMIR() et MANGER().

Les objets CHIEN et OISEAU héritent d'ANIMAL. Ils possèdent donc ses propriétés et ses méthodes qu'il ne faudra pas redéfinir, mais en plus CHIEN possède la méthode MARCHER() et OISEAU  la méthode VOLER().




Encapsulation

L'encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein d'une structure en cachant l'implémentation de l'objet, c'est-à-dire en empêchant l'accès aux données et aux codes informatiques par un autre moyen que les services proposés.


L'encapsulation permet donc de garantir l'intégrité des données contenues dans l'objet.


Pour ce faire, lors de l'écriture des classes on dispose de trois niveaux de lisibilité :


QT Creator :

Messages


En programmation objet, les objets s'animent grâce aux méthodes.


Les méthodes sont activées grâce à des messages qui leur sont envoyés.


Les messages peuvent provenir