L3 MIASHS, Programmation Web 2, année 2022
La programmation orientée objet (POO)
Le gros du contenu de ce cours est extrait d’ici
pour la partie JavaScript
.
Objectif de la POO
Les objets sont des manières d’interagir avec des concepts
plus ou moins abstrait en programmation. En Python, il peut s’agir de
structure de données (dict
, list
) de classes
dédiées pour représenter un élément du code.
Leur structure permet de factoriser du code en suivant des patrons de conceptions génériques. Ces patrons sont indispensables pour tout projet à visé industriel ou professionnel afin d’éviter d’écrire du code qui part dans tous les sens.
Les grands principes de la programmation orientée objet sont hors du cadre de ce cours mais constitue un pré-requis indispensable au métier de développeur.
La notation point
En JavaScript et en Python les objets différent un peu mais dans un premier temps ça ne fait pas beaucoup de différence. Dans chacun de ces deux langages, tout type de donnée manipulée (même les types de bases) sont des objets. Ce sont des entités qui:
- Ont un état interne possiblement compliqué
- Ont des propriétés qu’on peut accéder
- Ont des méthodes qu’on peut exécuter.
La syntaxe de manipulation d’un objet va vous êtes très familière puisque vous l’utilisez depuis vos premiers pas en programmation: on utilise le point pour accéder à un sous-champs de l’objet qui peut être au choix une méthode ou une propriété.
- propriété
nom_objet.propriété
- méthode
nom_objet.method(argument_1, ...)
Exemples en Python et en JavaScript
= "Choucroute" # chaine de caractère
s print(s.isalpha()) # méthode qui teste s'il n'y a que des alphabet
= "Choucroute"
s console.log(s.length) // propriété qui retourne la longueu
Définition de nouveaux objets
On va se concentrer uniquement sur JavaScript. En Python, définir des objets nécessitent de définir une nouvelle classe.
let Objet = new Object(); // Créer un objet vide
.propA = "Choucroute"; // fixe une propriété
Objet.propB = "Garnie"; // une autre propriété
Objet.print = function(){ // définit une méthode
Objetconsole.log("Objet", this.propA, this.propB); // this réfère à l'objet Objet
}.print(); // appel la méthode print.
Objet.propA = "Chouquette";
Objet.propB = "à la vanille";
Objet.print(); Objet
Compiled the: mer. 04 sept. 2024 12:49:55 CEST