Dans la programmation il existe deux paradigmes principaux :
- La programmation fonctionnelle, que l’on retrouve beaucoup dans des langages comme JavaScript accompagné de ses nombreux frameworks, que vous pouvez d'ailleurs découvrir sur Dhaki.
- La programmation orientée objet (POO), que l'on retrouve dans des langages comme Python, Java, C++ ou encore C#.
L'orienté objet
C'est une façon de programmer qui se base sur le concept des classes et des objets et d’où vont résulter d’autres concepts comme l’héritage, le polymorphisme ou encore l’abstraction.
Bon je suis d’accord cela fait beaucoup de mot nouveaux mais on n’y comprend pas grand-chose pour autant. Pas d’inquiétude. On va tirer toutes ces énigmes au clair.
Le mieux pour comprendre un concept c’est de le voir avec plusieurs exemples.
Je vais me servir de plusieurs exemples qui sont des objets. Les humains. Une autre espèce de la planète Terre, qui sont les Chiens.
On va aussi prendre les voitures et les avions.
Prenons les humains ils peuvent être catégorisés en deux. Le sexe masculin et le sexe féminin. Bien sur notre espèce est plus complexe que ça. Mais il s’agit ici de simplifier pour comprendre l’oriente objet.
On peut dire que les humains sont définis avec deux jambes deux bras, deux yeux un cœur, etc.

La majorité des organes sont communs aussi bien aux hommes qu’aux femmes. Mais certains sont spécifique et différents en fonction du sexe.
De plus on peut aussi affirmer qu’un humain a des capacités, des fonctions. Comme Marcher, Danser, Apprendre, Parler etc…
Pour leur capacité c’est la même chose. La plupart sont communes aux deux sexes. Et certaines seront plus spécifique a un sexe plutôt qu’un autre. Une femme peut donner naissance, un homme non.
Maintenant appliquons ce que l’on sait mais avec de l’oriente objet…
Les classes
Tout d’abord en oriente objet nous avons des classes.
La voiture, le chien ou l’avion peut aussi être une classe. Ici l’humain peut être une classe. Une classe va designer un groupe avec un ensemble d’attribut et de fonctions.
Les Attributs
sont comme une description ou des données pure sur le groupe. Pour les humains c’est son corps : ses yeux, ses jambes, et tous les autres organes. Cela peut être la couleur ou même le nombre de cheveux qu’il a.
Les fonctions
sont ses capacités ou des méthodes. Dans le cas de la classe Humain c'est le fait de marcher, boire, apprendre, etc.
Il est important de rappeler ici qu’un humain spécifique n’est pas une classe.
La classe c’est l’espèce humaine. Un humain fait partie de la classe Humain. Pour un humain s’appelant Paul par exemple. On dira en oriente objet que Paul est une instance de la classe Humain. Car Paul appartient à la classe Humain et a été designer selon cette classe.
Voilà vous savez ce qu’est une classe.
L'héritage
Essayons de voir maintenant l’héritage.
Prenons donc notre classe Humain. Pour qui les attributs sont les organes que possède un humain et qui a pour fonction les capacités d’un humain.
Tout à l’heure nous avons précisé que les humains pouvaient être soit de sexe masculin soit féminin. On peut créer deux classes une classe masculin et une classe féminin.
Le sexe masculin et féminin ont pour la plupart les mêmes fonctions ou attributs . Mais parfois on peut avoir des spécificités.
Que fait ont dans ce cas-là ? C’est très simple. On utilise l’héritage. L’héritage permet à une classe enfant d’avoir et d'utiliser les attributs et fonction d’une classe parente.
Comme on a vu tout à l’heure une femme peut enfanter et non un homme. La fonction enfanter ne va pas se trouver dans la classe humaine. Car tous les humains ne le peuvent pas et va donc être une spécificité de la classe féminin.
La classe féminin va hériter de toutes les particularités de la classe humain et va posséder d’autre propriétés et fonctions.
La classe chien va aussi avoir un type féminin et masculin.
L’humain et le chien ont aussi des particularités communes. Qui sont propres au mammifère par exemple. Comme le fait de respirer. On peut créer une classe mammifère qui aura pour fonction Respirer. Et qui sera parente de Humain et Chien
Changeons d’exemple. On peut prendre une classe qui sera Vehicule. Un véhicule peut se déplacer. Il aura comme attribut un moteur. Et comme fonction se déplacer.
Un avion vole. Une voiture roule. Les deux sont enfants de la classe parente Véhicule car les deux ont un moteur et se déplacent.
Mais la classe voiture a des roues et roule.
L’avion a des aile et la fonction voler.
Bon d’accord il peut aussi rouler mais il s’agit là de simplifier pour comprendre.
Ils héritent tous les deux du moteur. Mais ne se déplace pas de la même façon.
Lorsque des classes enfants héritent de propriété et fonctions d'une classe parente. C'est ce que l'on appelle dans la programmation orientée-objet (POO), l'héritage.
Donc voilà normalement vous avez maintenant compris l’héritage.
Paul est donc un objet appartenant a la classe Humain. Qui elle-même est un objet qui hérite de la classe mammifère.
On dit que Paul est une instance de la classe Humain.
L’abstraction.
L’être humain et le chien sont des mammifères. Mais sont aussi des êtres vivants. Et c’est ce qui leur permet de respirer. Lorsque l’on a une caractéristique commune comme le fait de respirer. Qui va réunir deux groupes de classe que l’on a créé. Mais que cette caractéristique n’a na vraiment d’importance. Comme ici le fait de respirer.
Nous pouvons ne jamais avoir besoin d’utiliser respirer dans notre code. Mais avoir besoin de réunir l’homme et le chien dans une classe commune.
Cette classe commune que l’ont ne détaille pas, c’est ça l’abstraction.
Le polymorphisme
Pour finir le polymorphisme, ce mot compliqué désigne finalement un concept simple. C’est le fait qu’une action peut se faire de plusieurs façon. D’où le préfixe poly.
Prenons la fonction communiquer. Propre aux être vivants. Un humain communique en parlant. Un dauphin en émettant des ultras son. Ce ne sont pas les même façons de communiquer.
Lorsque une fonction qui a la base commune a une classe parente. Change en fonction des classes enfants. On appelle ça le polymorphisme.
Prenons un autre exemple. Un peu de math...
Imaginons une classe parente Figure. Elle a comme attribut un périmètre une aire et nombre de sommets. Elle peut avoir comme fonction calculer aire.

Prenons maintenant deux autres classe. La classe carré et la classe triangle.
Elles héritent des attributs de la classe parente figure. Mais aussi de la fonction venant de la classe parente calculer aire.
Par contre on ne calcule pas une aire de la même façon pour un carre et un triangle. La fonction calculer air va être différente en fonction des classes enfants.
C’est encore une fois du polymorphisme.
Voilà je pense avoir fait le tour des concepts de l’oriente objet. On se retrouve très vite pour la suite !
Pour des exercices sur l'orienté-objet n'hesitez pas a visiter notre plateforme Dhaki !