Qu'est-ce que la programmation orientée objet? Les bases expliquées dans les termes de Layman

La plupart des langages de programmation modernes prennent en charge le paradigme de programmation orientée objet (POO). Mais qu'est-ce que la POO et pourquoi est-ce si utile?

La plupart des langages de programmation modernes prennent en charge le paradigme de programmation orientée objet (POO).  Mais qu'est-ce que la POO et pourquoi est-ce si utile?
Publicité

Si vous avez déjà fait des programmes pour débutants, ou même commencé à regarder différentes langues, vous avez probablement rencontré l'expression «programmation orientée objet» (ou «POO»).

Il y a toutes sortes d'explications techniques quant à ce que c'est, mais aujourd'hui nous allons nous pencher sur la définition de la programmation orientée objet d'une manière simple.

Avant de commencer: les langages de procédure

Pour comprendre ce qu'est un langage de programmation orienté objet, vous devez comprendre ce qu'il a remplacé. Les premiers langages de programmation étaient appelés «procédures» parce que le programmeur définissait un ensemble de procédures très spécifiques que l'ordinateur entreprendrait.

Qu'est-ce que la programmation orientée objet et comment commencer à l'apprendre

Dans les premiers jours, les procédures ont été écrites sur des cartes perforées. Ces étapes ont pris en compte les données, effectué une séquence d'actions sur ces données, puis généré de nouvelles données.

Les langages procéduraux ont bien fonctionné pendant un certain temps (et certains sont encore utilisés). Mais quand vous voulez programmer quelque chose au-delà d'une séquence d'étapes de base, les langages procéduraux peuvent devenir difficiles à gérer. C'est là qu'intervient la programmation orientée objet.

L'objet de la programmation orientée objet

Alors, qu'est-ce que la programmation orientée objet?

Le premier langage orienté objet (généralement accepté comme étant Simula) a introduit l'idée d' objets . Les objets sont des collections d'informations qui sont traitées comme une entité singulière.

Nous allons plonger plus profondément dans ce que cela signifie réellement dans une seconde avec un exemple, mais nous devons d'abord parler des classes . Les classes sont un peu comme des pré-objets. Ils contiennent une liste d'attributs qui, lorsqu'ils sont définis, deviennent un objet.

Qu'est-ce que la programmation orientée objet et comment commencer à l'apprendre

Prenons l'exemple de la programmation d'un jeu d'échecs. Nous pourrions avoir une classe appelée Piece. Dans Piece, nous avons une liste d'attributs:

  • Couleur
  • la taille
  • Forme
  • Mouvement autorisé

Un objet définit simplement une instance particulière d'une chose appartenant à cette classe.

Nous pourrions donc avoir un objet appelé WhiteQueen. Cet objet aurait des définitions pour les quatre attributs (blanc, grand, cylindrique avec créneaux, n'importe quel nombre d'espaces dans n'importe quelle direction). Il pourrait également avoir des méthodes ou des fonctions.

Qu'est-ce qui rend tellement mieux que l'approche procédurale?

En bref, les langages de programmation orientés objet (comme Java) facilitent l'organisation des données et du code d'une manière plus polyvalente pour un projet plus important.

Pour en discuter un peu plus en détail, nous parlerons des quatre bases de la programmation orientée objet.

Programmation orientée objet: Abstraction

Ce n'est pas parce que vous voulez utiliser quelque chose que vous devez savoir comment cela fonctionne. Une machine à expresso, par exemple, est complexe. Mais vous n'avez pas besoin de savoir comment cela fonctionne. Vous avez juste besoin de savoir que lorsque vous cliquez sur "On", vous allez obtenir un expresso.

Qu'est-ce que la programmation orientée objet et comment commencer à l'apprendre

Il en va de même pour les objets en programmation orientée objet. Dans notre exemple d'échecs, nous pouvons avoir une méthode move (). Cette méthode pourrait nécessiter beaucoup de données et d'autres méthodes. Il pourrait avoir besoin de la position initiale et des variables de position finale. Il pourrait utiliser une autre méthode pour déterminer s'il est capturé un morceau.

Mais tu n'as pas besoin de savoir ça. Tout ce que vous devez savoir, c'est que lorsque vous dites à la pièce de bouger, elle bouge. C'est de l'abstraction.

Programmation orientée objet: Encapsulation

L'encapsulation est l'un des moyens par lesquels la programmation orientée objet crée l'abstraction. Chaque objet est une collection de données traitée comme une entité unique. Et au sein de ces objets sont des données - à la fois des variables et des méthodes.

Les variables d'un objet sont généralement gardées privées, ce qui signifie que les autres objets et méthodes ne peuvent pas y accéder. Les objets ne peuvent être affectés qu'en utilisant leurs méthodes.

Un objet Bishop peut contenir plusieurs informations. Par exemple, il pourrait avoir une variable appelée «position». Cette variable est nécessaire pour utiliser la méthode move (). Et, bien sûr, il a une couleur.

En rendant la variable de position private et la méthode move () public, un programmeur protège la variable move contre toute autre action. Et si la couleur est une variable privée, il n'y a aucun moyen pour qu'un autre objet la change à moins qu'une méthode permette le changement. (Ce que vous n'auriez probablement pas, car la couleur de la pièce devrait rester constante.)

Ces variables et méthodes sont conservées dans l'objet Bishop. Parce qu'ils sont encapsulés, un programmeur peut apporter une modification à la structure ou au contenu de l'objet sans se soucier de l'interface publique.

Programmation orientée objet: héritage

En plus des classes, les langages de programmation orientés objet ont aussi des sous-classes. Ceux-ci contiennent tous les attributs de la classe parent, mais ils peuvent également contenir d'autres attributs.

Dans notre jeu d'échecs, les pièces de pions ont besoin d'une méthode qui peut les transformer en d'autres pièces si elles le font à la fin du plateau. Nous l'appellerons la méthode transformPiece ().

Toutes les pièces n'ont pas besoin de la méthode transformPiece (). Donc nous ne voudrions pas le mettre dans la classe Piece. Au lieu de cela, nous pouvons créer une sous-classe appelée Pawn. Parce que c'est une sous-classe, elle hérite de tous les attributs de Piece. Ainsi, une instance de la sous-classe Pawn inclut une couleur, une hauteur, une forme et un mouvement autorisés.

Mais il inclut également la méthode transformPiece (). Maintenant, nous n'avons jamais à nous soucier d'utiliser accidentellement cette fonction dans une tour. Voici une explication technique:

Créer des sous-classes permet également d'économiser beaucoup de temps. Au lieu de créer de nouvelles classes pour tout, les programmeurs peuvent créer une classe de base, puis l'étendre à de nouvelles sous-classes quand ils en ont besoin. (Cependant, il vaut la peine de noter que la dépendance excessive à l'héritage est mauvaise. 10 Principes de programmation de base Chaque programmeur doit suivre 10 Principes de programmation de base Chaque programmeur doit suivre Toujours écrire du code qui peut être maintenu par n'importe qui peut finir par travailler sur votre logiciel. fin, voici plusieurs principes de programmation pour vous aider à nettoyer votre acte.

Programmation orientée objet: polymorphisme

Le polymorphisme est le résultat de l'héritage. Comprendre pleinement le polymorphisme nécessite quelques connaissances en programmation, nous allons donc nous en tenir aux principes de base ici. En bref, le polymorphisme permet aux programmeurs d'utiliser des méthodes du même nom, mais avec des objets différents .

Par exemple, notre classe Piece peut avoir une méthode move () qui déplace une pièce d'un espace dans n'importe quelle direction. Cela fonctionne pour le morceau de roi, mais pas pour autre chose. Pour résoudre ce problème, nous pouvons définir une nouvelle méthode move () dans la sous-classe Rook qui définit le mouvement comme un nombre illimité d'espaces en avant, en arrière, à gauche ou à droite.

Maintenant, quand un programmeur appelle la méthode move () et utilise une pièce comme argument, le programme saura exactement comment le morceau doit bouger. Cela vous permet de gagner du temps en essayant de déterminer laquelle de nombreuses méthodes différentes vous devriez utiliser.

Programmation orientée objet en résumé

Si votre tête tourne un peu après ces quatre dernières définitions, ne vous inquiétez pas trop. Voici les principales choses dont vous devez vous souvenir:

  • La programmation orientée objet recueille des informations dans des entités uniques appelées objets.
  • Chaque objet est une instance unique d'une classe.
  • L'abstraction cache le fonctionnement interne d'un objet quand il n'est pas nécessaire de les voir.
  • L'encapsulation stocke les variables et les méthodes associées dans les objets et les protège.
  • L'héritage permet aux sous-classes d'utiliser les attributs des classes parentes.
  • Le polymorphisme permet aux objets et aux méthodes de gérer plusieurs situations différentes avec une seule interface.

Si vous vous souvenez de ces points, vous maîtriserez bien la programmation orientée objet. Les quatre bases de la programmation orientée objet, comme je l'ai mentionné, peuvent être un peu difficiles à maîtriser. Mais une fois que vous commencez à programmer, ils deviendront plus clairs.

Rappelez-vous que nous avons seulement discuté des généralités dans cet article. Différents langages orientés objet auront leurs propres caprices et les moyens de faire bouger les choses. Une fois que vous choisissez la bonne langue pour vous Vous cherchez les meilleurs langages de programmation? Commencer ici! Vous cherchez les meilleurs langages de programmation? Commencer ici! Que vous soyez complètement nouveau dans les langages de programmation ou que vous cherchiez à vous lancer dans un nouveau type de programmation, l'une des questions les plus importantes à se poser est: "Quel langage de programmation me convient le mieux?" En savoir plus, vous allez commencer à apprendre comment les principes de la POO sont mis en pratique.

In this article