Résumé sur les notions d'objet
Un objet
Type d’un objet ou définition d’un objet est une CLASSE (ou entité).
A partir de là, vous pourrez:
- Réutiliser et spécialiser des classes
- Faire une hiérarchie de genres et des parties
Exemple de hiérarchies de genre:
- La hiérarchie de genre permet d’effectuer une abstraction en
utilisant le terme véhicule, qui est imprécis au départ,
mais qui sera affinée ensuite.
- L’abstraction permet de manipuler des objets génériques,
sans connaître leur fonctionnement final.
Exemple de hiérarchies de parties:
Constructeur/destructeur
Chaque objet a son constructeur et son destructeur.
Le constructeur permettant d'initialiser l'objet
Le destructeur permettant de libérer d'éventuelles ressources en informatique.
Encapsulation
Un objet est composé de données (encore appelé attributs ou données membre) et de méthodes (ou fonctions membres)
L’encapsulation permet d’isoler les données ou méthodes
touchant à l’intégrité de l’objet.
Ce qui n'est pas le cas en programmation structurée comme par exemple dans le cas d'une variable globale où l'ensemble des fonctions peuvent opérer sur la valeur de celle-ci.
Soit D, un compteur de 1 en 1.
Fonction1() : D = D + 1
Fonction2() : D = 0
Fonction3() : D = -1
Avec les appels au fonction2 et 3, de n'importe où, n'importe quand,
votre variable peut prendre de drôle de valeur: Pb car votre variable
ne s'incrémente plus de 1 en 1, et votre programme ne voit rien.
Programmation objet : D n’est pas accéssible directement. Il faudra
passer par des méthodes.
La variable D est encapsulée dans des méthodes qui seront les seules à pouvoir manipuler celle-ci (vrai dans le cas de développement objet pur, beaucoup moins en développement orienté objet comme JAVA, C++, où les variables peuvent être accessibles).
Ici, fonction1 doit déclencher la méthode "incrémenter" pour ensuite demander la nouvelle valeur de D via la méthode "lire".
Instance
L’existence physique d’un objet est appelé INSTANCE de la classe de l’objet.
En informatique cela permettra:
- De laisser le code des méthodes au niveau de la classe. Il n'y a ainsi pas de duplication du code en mémoire, d'où une consommation mémoire moins importante.
- D'avoir des variables générées au niveau des instances. Il est donc possible d'exécuter plusieurs objets sans pour autant y avoir d'interférence entre eux au niveau des données.
Vues externes et internes d’une classe
- Partie publique : les méthodes d'un objet sont alors accessible de
l’extérieur.
- Partie protégée : les méthodes d'un objet ne seront accessible
que par les classes dérivées.
- Partie privée : les méthodes ne sont accessible que par la classe
seule.
Relations avec les autres classes
- Spécialisation (genre de).
- Agrégation (partie de).
- Association.
Polymorphisme/Fonctions virtuelles et classes abstraites
C’est un concept permettant d’effectuer une opération qui
pourra être réalisée de façon différente par
les objets partageant une même classe de base, supportant cette opération.
Le polymorphisme impliquant l'apparition de la notion de fonction virtuelle et aussi celle des classes abstraites.
Si vous avez besoin de dessiner sur une table traçante ou à l'écran ses différentes formes, vous pouvez définir la méthode ou fonction "dessine" virtuellement dans la classe forme, les classes spécialisées auront ainsi obligatoirement la méthode "dessine", mais elles devront indiquer exactement ce qu'il faut faire.
Les classes abstraites pures sont des classes où il n'y a que des fonctions virtuelles.