Aller au contenu

Programmation Orientée Objet

Les langages de programmation sont nombreux et variés. On peut les regrouper selon plusieurs critères appelés « les paradigmes de programmation ». Certains de ces paradigmes sont mieux adaptés que d’autres pour traiter des problèmes spécifiques. On peut distinguer :

  • La programmation impérative :
    Paradigme le plus « traditionnel », c'est ainsi que vous avez appris à programmer jusqu'à présent. Lorsqu'on y ajoute la définition de fonctions, on parle plutôt de programmation procédurale.
    1
    2
    3
    4
    def pgcd(a, b):
        while b!= 0:
            a, b = b, a%b
        return a
    
  • La programmation évenementielle :
    Optimisée pour répondre aux événements qui peuvent survenir (pages web, fenêtres interactives, jeu vidéo). Les langages Javascript ou Scratch, la bibliothèque tkinter de Python font appel à la programmation événementielle.

  • La programmation fonctionnelle :
    Ce paradigme sera étudié plus tard dans l'année. La programmation récursive peut être considérée comme une introduction à ce paradigme.

    1
    2
    3
    4
    5
    def pgcd(a, b):
        if b == 0:
            return a
        else:
            return pgcd(b, a%b)
    

  • La programmation orientée objet :
    Ce paradigme va être étudié durant cette leçon.

Remarque

Les langages de programmation sont très rarement « purs » : ils intègrent plusieurs paradigmes. Python est un langage « orienté objet » qui permet d'utiliser chacun des paradigmes précédents.

Objet

L'idée qui sous-tend la programmation orientée objet est celle-ci : « il n'est pas nécessaire de savoir comment un objet a été fabriqué ni comment il est constitué pour pouvoir l'utiliser ».

Exemples

  • Dans la « vraie vie », la plupart des personnes ne savent pas comment est fabriquée une voiture, ni ne connaissent l'ensemble de ses pièces.
    Par contre, ces personnes savent utiliser cette voiture au quotidien.

  • En programmation, vous avez appris à piloter une tortue du module turtle. Vous ne savez pas comment cette objet « tortue » a été programmé : seul son usage vous a intéressé.

Avoir de la classe

Un objet est une entité possédant :

  • Une identité (un nom).
  • Des caractéristiques propres (des valeurs de variables) appelées attributs.
  • Des sous-programmes gérant son comportement appelés méthodes.

Une classe est un type abstrait plus complexe qu'un nombre ou un caractère. Elle regroupe des objets ayant les mêmes attributs et les mêmes méthodes.

Métaphore

  • Une classe, c'est le plan d'une maison (abstrait).
  • Un objet, c'est la maison issue du plan (concret).
  • Une autre maison, issue du même plan, est aussi un objet qui peut avoir des caractéristiques (attributs) différentes (peinture, mobilier, etc...) de la première maison.