2.Programmation orientée objet

2.1.Différence avec la programmation procédurale

Vous avez peut-être découvert la programmation par la méthode procédurale. Dans ce cas, l'essentiel du code consiste à manipuler des variables dites de type simple (entiers, chaînes de caractères, tableaux, etc.) avec des fonctions.
Vous avez pu constater qu'il est difficile d'assurer une cohérence entre les variables. Nous voulons dire par là qu'il n'y a guère de moyen, en dehors des tableaux, de regrouper les variables pour décrire une entité... pour ne pas dire un objet. Ainsi si vous voulez dire qu'une voiture est grise avec 5 portes et un moteur de 5 CV, vous pourrez au choix:
  • Utiliser une variable portant un nom du genre "voiture_couleur" qui contiendra peut-être une chaîne de caractères (ou un entier) décrivant la couleur et des variablse du genre "voiture_nb_portes" et "voiture_nb_cv" associés à un entier.
  • Utiliserez une variable, probablement nommée "voiture", contenant un tableau avec, selon ce que vous permet le langage choisi, la couleur (sous forme de chaîne de caractères ou entier) associé par exemple à l'index 0 ou à la clé "couleur", le nombre de portes et le nombre de CV associés respectivement à l'index 1 ou à la clé "nb_porte" et à l'index 2 ou à la clé "nb_cv"
L'utilisation de types simples fait qu'il est techniquement possible d'appliquer une fonction à une variable pour laquelle elle n'est pas conçue. Par exemple le nombre de portes et le nombre de CV sont tous deux représentés par un entier, il est donc possible d'appliquer la fonction "calcul_prix_carte_grise(nb_cv)" certes au nombre de CV mais aussi nombre de portes sans qu'aucune erreur ne soit levée. Autrement dit les fonctions et les variables ne sont pas étroitement liés.
C'est en partie à ces défauts que la programmation orientée objet (POO) est censée palier. Qui plus est, nous découvrirons que la programmation orientée objet ouvre alors de nouvelles possibilités (telle que l'héritage).