En bref
La classe est le moule, l’objet est le gâteau : la classe décrit une fois pour toutes la forme d’une famille de choses — un CompteBancaire a un solde et sait déposer, retirer — et chaque objet créé à partir d’elle est un exemplaire vivant, avec ses propres valeurs. Deux comptes tirés du même moule partagent la même structure mais mènent des vies indépendantes : déposer sur l’un ne touche pas l’autre. Le vocabulaire à connaître : les données d’un objet s’appellent ses attributs, ses savoir-faire ses méthodes, la fabrication d’un objet une instanciation (l’objet est une instance de la classe), et la méthode spéciale qui règle chaque exemplaire à sa création — le glaçage initial — s’appelle le constructeur. La notation universelle avec le point (compte1.deposer(50)) se lit comme un dialogue : on demande à l’objet, il exécute avec ses propres données. C’est le mécanisme central de la programmation orientée objet.
La programmation orientée objet t’a donné la vue d’ensemble — l’équipe d’objets spécialisés. Voici maintenant la mécanique qui fabrique cette équipe : le duo classe-objet, moule et exemplaires. Comprendre une classe et un objet — vraiment, jusqu’à la notation au point et au constructeur — est le geste technique fondateur de toute la POO ; ce guide le démonte tranquillement, Python et JavaScript en parallèle, dans la lignée de notre guide complet.
Une classe et un objet, expliqués avec les mains
Prends un moule à gâteau. Le moule définit la forme — rond, cannelé, vingt centimètres — mais le moule ne se mange pas : il décrit. Les gâteaux, eux, existent : tu en tires trois du même moule, tous ont la même forme, et pourtant chacun est un individu — celui-ci au chocolat, celui-là au citron, le troisième déjà entamé. Voilà exactement le duo : la classe est le moule (la description d’une famille : ce qu’un CompteBancaire possède et sait faire), l’objet est le gâteau (un exemplaire concret, avec SES valeurs : le compte de Sami, solde 120 ; celui de Léa, solde 45). Fabriquer un objet depuis une classe s’appelle l’instanciation — l’objet est une instance de la classe — et l’indépendance des exemplaires est le cœur du mécanisme : déposer sur le compte de Sami ne change rien à celui de Léa.
Le vocabulaire du moule, maintenant. Ce qu’un objet possède — son solde, son titulaire — s’appelle ses attributs : des variables qui vivent à l’intérieur de chaque exemplaire. Ce qu’un objet sait faire — déposer, retirer, s’afficher — s’appelle ses méthodes : des fonctions attachées au moule, qui travaillent sur les attributs de l’exemplaire qui les exécute. Reste une question pratique : quand on tire un gâteau du moule, qui règle son parfum initial ? Réponse : le constructeur — la méthode spéciale appelée automatiquement à la fabrication, qui reçoit les valeurs de départ (« ce compte démarre au nom de Sami, solde zéro ») et les range dans les attributs. Moule, exemplaires, attributs, méthodes, constructeur : cinq mots, et tu tiens toute la machinerie.
À quoi ça ressemble dans le code
En Python : class CompteBancaire: ouvre le moule. Le constructeur porte le nom rituel __init__ — def __init__(self, titulaire): self.titulaire = titulaire ; self.solde = 0 — lis : « à la fabrication, range le titulaire reçu et un solde de zéro dans l’exemplaire ». Ce self omniprésent désigne simplement « l’exemplaire en train d’agir » — le gâteau concerné : self.solde est « le solde de CE compte-ci ». Une méthode suit le même motif — def deposer(self, montant): self.solde = self.solde + montant. La fabrication et l’usage : compte1 = CompteBancaire(« Sami ») tire l’exemplaire, compte1.deposer(50) lui parle — et la notation au point se lit toujours comme un dialogue : « compte1, dépose 50 ». Crée compte2 = CompteBancaire(« Léa »), dépose sur l’un, affiche les deux soldes : l’indépendance des exemplaires devient une évidence vécue — le petit test à faire absolument sur tes bases Python.
En JavaScript : class CompteBancaire { constructor(titulaire) { this.titulaire = titulaire; this.solde = 0; } deposer(montant) { this.solde += montant; } } — même musique, deux différences d’orthographe : le constructeur s’appelle constructor, et l’exemplaire en action s’appelle this au lieu de self. La fabrication exige le mot-clé new — const compte1 = new CompteBancaire(« Sami »); — puis le dialogue au point est identique : compte1.deposer(50);. Et voici la révélation rétroactive : ce point, tu l’utilises depuis tes premiers jours — « bonjour ».toUpperCase(), courses.push(« pain »), la liste qui « sait » s’agrandir… Les chaînes et les tableaux sont des objets depuis le début : tu ne découvres pas un monde nouveau, tu apprends enfin à fabriquer tes propres moules — comme le font en grand Java et le C++ moderne, où tout l’édifice repose sur ce duo.
Les pièges classiques (et comment les éviter)
Piège 1 : parler au moule au lieu du gâteau. Écrire CompteBancaire.deposer(50) — demander au moule de déposer — n’a pas de sens : seuls les exemplaires ont un solde. Le remède : toujours fabriquer d’abord (compte1 = …), dialoguer ensuite (compte1.deposer(…)). Piège 2 : oublier self (ou this). Écrire solde = solde + montant dans une méthode Python crée une variable locale fantôme au lieu de toucher l’attribut — le compte ne bouge jamais, mystère complet. Le remède : dans une méthode, tout ce qui appartient à l’exemplaire porte son préfixe — self.solde, this.solde — sans exception.
Piège 3 : oublier new en JavaScript. const c = CompteBancaire(« Sami ») sans new ne fabrique rien de bon — le mot-clé est le geste d’instanciation, non négociable. Piège 4 : le constructeur bavard. Un constructeur qui calcule, affiche et sauvegarde déborde de son rôle — il règle l’exemplaire à sa naissance, point ; le vrai travail vit dans les méthodes. Le mécanisme est complet — et il ouvre directement la suite du voyage : l’héritage, où les moules eux-mêmes fondent des familles. D’ici là, fais tourner le tien : la classe CompteBancaire des exercices Python (ou sa cousine des exercices JavaScript) est exactement le rite de passage qu’il te faut — deux comptes, deux vies, un moule.
Questions fréquentes
Quelle différence entre une classe et un objet ?
La classe est le moule : elle décrit ce qu’une famille de choses possède (attributs) et sait faire (méthodes). L’objet est un exemplaire concret tiré de ce moule — une instance — avec ses propres valeurs : deux comptes issus de la même classe partagent la structure mais mènent des vies indépendantes.
À quoi sert le constructeur d’une classe ?
C’est la méthode spéciale exécutée automatiquement à la fabrication de chaque objet : elle reçoit les valeurs de départ (le titulaire, le solde initial) et les range dans les attributs de l’exemplaire. En Python elle s’appelle __init__, en JavaScript constructor — même rôle : régler le gâteau à sa sortie du moule.
Que signifient self en Python et this en JavaScript ?
Les deux désignent « l’exemplaire en train d’agir » : dans une méthode, self.solde ou this.solde signifie « le solde de CET objet-ci ». C’est ce qui permet au même code de méthode, écrit une fois dans la classe, de travailler avec les données propres de chaque objet qui l’exécute.
C’est quoi une instance en programmation ?
Simplement un objet, vu depuis sa classe : « compte1 est une instance de CompteBancaire » signifie que compte1 a été fabriqué à partir de ce moule (l’instanciation). Les trois mots — objet, instance, exemplaire — désignent la même chose ; le vocabulaire varie, le mécanisme jamais.
Sources
- Python.org — la documentation officielle du langage
- MDN Web Docs — la référence JavaScript en français
Cet article a une vocation informative et pédagogique. Les plateformes, outils et formations éventuellement cités le sont à titre d’exemple ; compare plusieurs options avant de t’engager ou de payer.

