1) La Programmation Orientée Objet

Le langage de programmation C++ est un langage faisant intervenir la POO : Programmation Orientée Objet

Un objet est une entité informatique qui a sa propre structure interne et son propre comportement, et qui sait interagir avec les autres objets. Un objet est issu d'une classe, entité supérieure qui lui donne ses propriétés et sa structure (si "Clio" était un objet, "voiture" serait la classe).

Un objet est défini à l'aide :

  1. d'attributs : qui sont ses propriétés, la couleur ou le poids de la voiture par exemple.
  2. de méthodes : qui décrivent la façon dont l'objet doit répondre à une sollicitation extérieure.

Un des grands principes de la POO est l'encapsulation. L'encapsulation permet de cacher l'implémentation d'un objet (les informations liées à la structure de l'objet). Ainsi, un utilisateur n'ayant pas les droits requis, ne peut accéder aux données que par les interfaces (fonctions définies pour modifier les données de l'objet). Cela permet d'assurer l'intégrité des données.

Un autre grand principe de la Programmation Orientée Objet est l'héritage : la faculté de créer des "sous classes". Si "Vivant" est une classe, "Animal" et "Végétal" sont deux sous-classes, "Invertébré", "Vertébré" ... sont également des sous classes de "Animal". On créée ainsi des hiérarchies de classes de plus en plus spécialisées. L'intérêt réside dans le fait qu'il n'est plus nécessaire de définir absolument tout à chaque objet qu'on crée, certaines données sont définies par sa classe spécialisée.

Enfin, le dernier grand principe de la POO est le polymorphisme. Si l'héritage concerne les classes, le polymorphisme concerne les méthodes. Il existe plusieurs types de polymorphismes :

  1. Le polymorphisme Ad Hoc : permet d'avoir des fonction de même nom, de fonctionnalités similaires mais dans des classes radicalement différentes.
  2. Le polymorphisme paramétrique : permet de définir des fonctions de même nom mais de paramètres différents. Le programme choisit ainsi la bonne méthode à adopter en fonction des paramètres d'entrée (logiques, entiers, chaîne de caractère ...)
  3. Le polymorphisme d'héritage : permet de redéfinir les méthodes dans les classes héritant (sous classes) d'une classe de base, pour ainsi appeler une fonction sans se soucier de la classe de l'objet (comme pour faire bouger toutes les pièces d'échec avec la fonction bouger sans se soucier de la pièce en question, le mouvement étant défini par la classe de la pièce)

 

Ainsi, la programmation orientée objet a de nombreux avantages qui expliquent que cette méthode est une des plus utilisées de nos jours :

  • facilité d'organisation grâce aux objets
  • méthode plus intuitive car plus proche de la réalité, principe d'héritage
  • gestion de projet plus efficace : la sécurisation via encapsulation permet d'avoir plusieurs développeurs travaillant sur un même projet, chacun ne travaille que sur les implémentations le concernant.
  • le code est "factorisé" : il est plus facilement lisible et donc corrigible, et est moins lourd

 

source : http://www.commentcamarche.net/contents/812-programmation-orientee-objet