Numérique et Sciences Informatiques > Langages de Programmation > Paradigmes de Programmation > Programmation orientée objet (POO) : classes, objets, attributs, méthodes, héritage, polymorphisme (notions de base)
Introduction à la Programmation Orientée Objet (POO)
Découvrez les fondements de la Programmation Orientée Objet (POO) : classes, objets, attributs, méthodes, héritage et polymorphisme. Ce guide, spécialement conçu pour les élèves de lycée, vous fournira une compréhension claire et pratique de ces concepts essentiels.
Qu'est-ce que la Programmation Orientée Objet (POO) ?
La Programmation Orientée Objet (POO) est un paradigme de programmation qui organise le code autour de 'objets' plutôt que d'actions, et d'une logique à suivre. Un objet est une entité qui contient des données, sous forme d'attributs, et du code pour manipuler ces données, sous forme de méthodes. La POO vise à rendre le code plus modulaire, réutilisable et facile à comprendre. C'est une approche très populaire dans le développement de logiciels modernes. Elle est particulièrement adaptée pour les projets de grande envergure et pour les applications nécessitant une bonne organisation et une maintenabilité accrue.
Classes et Objets
Exemple concret :Voiture
(définissant les propriétés d'une voiture en général)maVoiture
, voitureDeMonAmi
(deux voitures spécifiques, chacune avec ses propres caractéristiques)
Attributs (Propriétés)
Les attributs sont les données associées à un objet. Ils décrivent l'état de l'objet. Exemples pour la classe Chaque objet Voiture
:couleur
(rouge, bleue, noire...)marque
(Renault, Peugeot, BMW...)nombreDePortes
(3, 5...)kilometrage
(0, 15000, 200000...)Voiture
aura des valeurs spécifiques pour ses attributs.
Méthodes (Comportements)
Les méthodes sont les actions que peut effectuer un objet. Elles définissent le comportement de l'objet. Exemples pour la classe Les méthodes peuvent modifier les attributs de l'objet ou interagir avec d'autres objets.Voiture
:demarrer()
accelerer(vitesse)
freiner()
klaxonner()
Héritage
L'héritage permet de créer de nouvelles classes à partir de classes existantes. La nouvelle classe (classe fille ou sous-classe) hérite des attributs et des méthodes de la classe existante (classe mère ou super-classe). Cela favorise la réutilisation du code et la création d'une hiérarchie de classes. Exemple:Vehicule
(attributs: marque
, modele
; méthodes: demarrer()
, arreter()
)Voiture
(hérite de Vehicule
et ajoute un attribut: nombreDePortes
; méthode klaxonner()
)Moto
(hérite de Vehicule
et ajoute un attribut: nombreDeRoues
; méthode faireDuWheeling()
)
Polymorphisme
Le polymorphisme signifie 'plusieurs formes'. En POO, il permet à des objets de classes différentes d'être traités de manière uniforme. C'est-à-dire, on peut appeler une même méthode sur différents objets, et chaque objet exécutera sa propre version de cette méthode. Exemple: On peut appeler Animal
(méthode: faireDuBruit()
)Chien
(faireDuBruit()
affiche 'Wouf !')Chat
(faireDuBruit()
affiche 'Miaou !')faireDuBruit()
sur un objet Chien
ou un objet Chat
, et chaque objet produira le son approprié. On n'a pas besoin de savoir si on a un chien ou un chat pour leur demander de faire du bruit !
Ce qu'il faut retenir
FAQ
-
Pourquoi utiliser la POO ?
La POO permet de mieux organiser le code, de le rendre plus réutilisable, plus facile à comprendre et à maintenir. Elle est particulièrement utile pour les projets complexes. -
Quelle est la différence entre une classe et un objet ?
Une classe est un modèle, une définition. Un objet est une instance de cette classe, c'est-à-dire une réalisation concrète de ce modèle. -
C'est quoi l'encapsulation ?
L'encapsulation est un principe fondamental de la POO qui consiste à regrouper les attributs (données) et les méthodes (comportement) qui agissent sur ces données au sein d'une même unité, la classe. De plus, l'encapsulation permet de contrôler l'accès aux attributs d'un objet, en les déclarant souvent comme 'privés' et en fournissant des méthodes spécifiques (getters et setters) pour lire et modifier ces attributs. Cela protège les données de l'objet contre les modifications accidentelles ou non autorisées et favorise une meilleure gestion de l'état de l'objet.