Programmation Orientée Objet en JavaScript
Définition
La POO permet d’organiser le code en objets contenant des propriétés et des méthodes.
Structure d’une classe
class Personne {
constructor(nom, age) {
[Link] = nom;
[Link] = age;
}
saluer() {
[Link]("Bonjour " + [Link]);
}
}
Création d’un objet
const p1 = new Personne("Ali", 25);
[Link]();
2. Partie pratique
Exercice 1 : Classe simple
Énoncé
Créer une classe Voiture avec :
marque
vitesse
Ajouter une méthode accelerer() qui augmente la vitesse de 10.
Correction
class Voiture {
constructor(marque, vitesse) {
[Link] = marque;
[Link] = vitesse;
}
accelerer() {
[Link] += 10;
[Link]([Link]);
}
}
const v1 = new Voiture("BMW", 100);
[Link]();
Exercice 2 : Encapsulation
Énoncé
Créer une classe Compte :
solde (privé #solde)
méthode deposer(montant)
méthode retirer(montant)
méthode afficher()
Correction
class Compte {
#solde;
constructor(solde) {
this.#solde = solde;
}
deposer(montant) {
if (montant > 0) {
this.#solde += montant;
}
}
retirer(montant) {
if (montant <= this.#solde) {
this.#solde -= montant;
}
}
afficher() {
[Link](this.#solde);
}
}
const c = new Compte(100);
[Link](50);
[Link](30);
[Link]();
Exercice 3 : Héritage
Énoncé
Créer :
Classe Personne
Classe Etudiant qui hérite de Personne
Ajouter niveau
Ajouter méthode afficherInfo()
Correction
class Personne {
constructor(nom, age) {
[Link] = nom;
[Link] = age;
}
}
class Etudiant extends Personne {
constructor(nom, age, niveau) {
super(nom, age);
[Link] = niveau;
}
afficherInfo() {
[Link]([Link], [Link], [Link]);
}
}
const e1 = new Etudiant("Sara", 20, "TS");
[Link]();
Énoncé
Créer une classe Produit :
nom, prix
méthode appliquerRemise(pourcentage)
Correction
class Produit {
constructor(nom, prix) {
[Link] = nom;
[Link] = prix;
}
appliquerRemise(p) {
[Link] -= [Link] * (p / 100);
}
}
const p1 = new Produit("PC", 1000);
[Link](20);
[Link]([Link]); // 800