
Alors nous y voilà ! Je pense que les parties précédentes vous ont un peu mis sur la piste, mais dans ce chapitre nous allons voir en détail ce qu'est la POO.

La programmation procédurale et la POO
Pour bien comprendre la POO, essayons de comprendre ce qu'est la programmation procédurale.
Attends, on ne sait déjà pas ce qu'est la POO ? Pourquoi tu nous parles d'autre chose ?
N'ayez crainte, je vous parle seulement de ce que vous savez déjà. En effet, aujourd'hui si vous deviez créer un programme, vous écririez une suite d'instructions les unes à la suite des autres. Éventuellement, vous créeriez des fonctions qui vous permettraient de réutiliser du code et de simplifier la lecture de votre programme. Et bien on appelle ça de la programmation procédurale ! Vous voyez, rien de nouveau !
En programmation procédurale, le meilleur moyen que l'on a pour organiser notre code, ce sont les fonctions. C'est un petit peu léger...
Avec l'orientée objet, nous pouvons aller beaucoup plus loin en manipulant des objets. Pourquoi beaucoup plus loin ? Et bien parce qu'un objet, techniquement, c'est un groupe de fonctions et de variables ! Donc on va pouvoir organiser notre code avec des groupements de fonctions et de variables.
Qu’est-ce qu’un objet ?
Et bien tout simplement, un objet c'est un petit paquet de variables et de fonctions.
Prenons l'exemple du jeu "Qui est-ce ?".

Voici comment nous nous y prendrions si on voulait programmer ce jeu en orienté objet. Tout d'abord il faudrait décrire le jeu avec des objets. Alors quels objets avons-nous ?
Nous avons bien sûr des personnages. Voilà un premier objet. Ces personnages ont tous des propriétés distinctives. C'est grâce à ces propriétés que, dans le jeu, nous allons pouvoir éliminer des personnages et trouver celui choisi par le joueur adverse.
Par exemple, les personnages ont comme propriétés :
Une couleur de cheveu
Une paire de lunettes ou non
Un sexe
Une barbe ou non
Une moustache ou non
Un nom
L'objet Personnage
contient donc 6 variables qu'on appelle ici en POO des propriétés.
Nous avons également un objet Plateau
qui contient tous les personnages.
On peut également penser à un objet Joueur
qui aurait les propriétés suivantes :
Le personnage qu'il a sélectionné
Son plateau de jeu
S'il a gagné ou non
Enfin, on pourrait avoir un objet Partie
qui aurait comme propriétés :
Les joueurs
Le joueur dont c'est le tour
Si la partie est finie ou non
Avec ces 4 objets : Personnage
, Plateau
, Joueur
et Partie
. Nous avons décrit très précisément les éléments qui composent le jeu. En programmation procédurale, ceci aurait été simplement une longue liste de variables. En POO, on peut classer ces informations par objet.
Mais un objet, ce ne sont pas que des propriétés. Comme je vous le disais plus haut, c'est aussi des fonctions. Les fonctions dans un objet, on les appelle les méthodes. Les méthodes, c'est ce que l'objet peut faire, ses actions.
Par exemple, l'objet Joueur
pourrait avoir une méthode poserUneQuestion
pour en savoir plus sur le joueur adverse. Et ensuite il pourrait avoir une méthode éliminer
pour éliminer certains personnages et enfin une méthode deviner
pour deviner le personnage choisi par l'adversaire.
L'objet Partie
pourrait avoir une méthode démarrer
pour lancer la partie, remettre les personnages en place et définir le personnage sélectionné par chaque joueur.
La logique de notre programme prend place dans les méthodes. Cela veut dire qu'au lieu que notre programme soit une suite d'instructions, il sera la combinaison de plusieurs objets qui vont interagir ensemble.
À quoi ça sert ?
Les objets sont extrêmement pratiques. Un programmeur sans objets, c'est comme un jedi sans sabre laser !
Cacher une implémentation
Mettons que l'on ait un objet Voiture
. Une voiture contient un mécanisme très compliqué. Le moteur qui brûle de l'essence. Cela crée de la chaleur. Cette énergie thermique est transformée en énergie mécanique. Le mouvement arrive jusqu'aux roues et la voiture avance. Toute cette logique est abstraite dans une voiture, vous n'avez pas besoin de la connaître. On l'a déjà fait pour vous. La seule chose que vous avez à votre disposition pour effectuer cette action, c'est la pédale de l'accélérateur. Tout le reste est caché sous le capot et si le constructeur a bien fait son travail, vous n'avez pas à vous en occuper.
Un objet en POO c'est exactement la même chose. Un objet peut être excessivement complexe et, pourtant, vous allez pouvoir l'utiliser au travers de seulement quelques méthodes très simples.
Représenter un concept
Un objet vous permet de représenter un concept et de le manipuler en tant que tel. Par exemple dans notre "Qui est-ce ?", nous n'avons pas une grande liste de variables et de fonctions mélangées. Nous avons simplement 4 objets clairs qui nous permettent d'organiser simplement et facilement notre logique et qui représentent des concepts simples structurant le jeu.
En résumé
La programmation procédurale, c'est ce que vous connaissez : la programmation à base de variables et de fonctions.
La programmation orientée objet se base sur le principe d'objets. Un objet c'est un ensemble de variables (appelée propriétés) et de fonctions (appelée méthodes). Cet ensemble décrit un concept unique et cohérent.
Un objet permet de :
cacher une implémentation
représenter un concept clairement