Qu'est-ce que la programmation orientée objet ?

Réponses rédigées par Antoine
Dernière mise à jour : 2019-07-29 20:33:41
Thèmes : logiciel - poo
Question

Pouvez-vous m'expliquer ce qu'est la programmation orientée objet ?

Réponse

La programmation orientée objet, également appelée programmation POO ou OO, est un paradigme de langage de programmation. Dans un programme orienté objet, le code peut être structuré en composants réutilisables, dont certains peuvent partager des propriétés ou des comportements.

La programmation orientée objet peut améliorer la capacité du développeur à prototyper rapidement un logiciel, à étendre les fonctionnalités existantes, à remanier le code et à le maintenir à mesure de son développement.

Lors de la programmation dans un langage de programmation orienté objet, vous devez garder à l’esprit les quatre concepts clés suivants :

  • Encapsulation : Regrouper des fonctions et des données connexes dans un objet afin de réduire la complexité et de permettre la réutilisation de parties du code.
  • Abstraction : Ne montrer que l'essentiel pour réduire les effets des changements.
  • Héritage : Éliminer le code redondant en héritant des fonctions et des données d'autres classes.
  • Polymorphisme : Modifier le fonctionnement d'un objet en fonction des données ou de la classe.
Réponse

Voici un exemple de scenarii d'un programme orienté objet :

Supposons que vous écrivez un jeu vidéo dans lequel les joueurs contrôlent et pilotent des véhicules. Si vous utilisez un langage de programmation orienté objet, vous pouvez définir une classe d'objets nommée "véhicule". Cette classe peut contenir des définitions des qualités et des comportements partagés par tous les véhicules. Par exemple, tous les véhicules accélèrent et ralentissent et consomment de l'essence. Dans cette définition de classe, vous pouvez définir des méthodes (similaires aux fonctions ) appelées "accélérer" et "décélérer", ainsi qu'une propriété (un type de variable) appelée "carburant", dont vous pouvez obtenir ou définir la valeur.

Vous pouvez ensuite définir des sous-classes, également appelées classes dérivées ou classes enfants, qui héritent des méthodes et des propriétés de la classe "véhicule". Par exemple, vous pouvez définir une sous-classe appelée "moto" à deux roues et une sous-classe appelée "voiture" à quatre roues. Leurs qualités communes (accélération, décélération et consommation de carburant) sont déjà définies dans "véhicule", vous n'avez donc pas besoin de les écrire à nouveau.

Ensuite, vous pouvez instancier ces sous-classes pour définir des véhicules individuels jouables. Chaque instance de la sous-classe hériterait des méthodes et des propriétés de toutes ses classes parentes et aurait ses propres propriétés et méthodes. Par exemple, ses propriétés uniques peuvent inclure la couleur de la peinture (rouge, bleu, etc.).

Par la suite, lorsque vous souhaitez modifier le code spécifique à une motocyclette, vous n’avez pas besoin de modifier la classe parent "véhicule". Le code "véhicule" a déjà été testé et fonctionne bien. La modification de votre programme nécessite donc moins de travail. De plus, étant donné que moins de lignes de code sont modifiées, il y a moins de chance qu'un bogue soit introduit quelque part dans le nouveau code. Si un bogue apparaît, vous n'avez pas besoin de vous demander s'il est dans le code de la classe "véhicule", car cette classe n'a pas été modifiée. Le développement et la maintenance du logiciel peuvent donc être plus efficaces, ce qui permet d'économiser du temps et des efforts.