Resume : Programmation Oriente Objet en JavaScript
1. Concepts cles de la POO
- Objet : Instance dune classe, regroupe donnees (attributs) + comportements (methodes).
- Classe : Modele pour creer des objets.
- Encapsulation : Cacher les details internes dun objet (via membres prives).
- Abstraction : Ne montrer que ce qui est essentiel.
- Heritage : Une classe peut heriter des proprietes/methodes d'une autre.
- Polymorphisme : Une meme methode peut se comporter differemment selon lobjet.
Exemple :
class Animal {
constructor(nom) {
[Link] = nom;
parler() {
[Link](`${[Link]} fait du bruit.`);
class Chien extends Animal {
parler() {
[Link](`${[Link]} aboie.`);
const rex = new Chien("Rex");
[Link](); // Rex aboie.
2. Creation de classes
- Utilisation du mot-cle class et du constructeur pour initialiser les objets.
Exemple :
class Personne {
constructor(nom, age) {
[Link] = nom;
[Link] = age;
saluer() {
[Link](`Bonjour, je m'appelle ${[Link]}.`);
let p = new Personne("Alice", 30);
[Link]();
3. Membres prives
- Utilisation de '#' pour declarer des membres prives.
Exemple :
class Compte {
#solde = 0;
depot(montant) { this.#solde += montant; }
afficherSolde() { return this.#solde; }
const c = new Compte();
[Link](100);
[Link]([Link]()); // 100
4. Getters, Setters et Methodes statiques
Exemple :
class Temperature {
constructor(celsius) { [Link] = celsius; }
get fahrenheit() { return [Link] * 9/5 + 32; }
set fahrenheit(f) { [Link] = (f - 32) * 5/9; }
static fromFahrenheit(f) {
return new Temperature((f - 32) * 5/9);
let t = new Temperature(0);
[Link]([Link]); // 32
[Link] = 212;
[Link]([Link]); // 100
5. Heritage et super
- Utilisation de 'extends' et 'super' pour heriter et appeler les methodes du parent.
Exemple :
class Vehicule {
constructor(marque) {
[Link] = marque;
demarrer() {
[Link](`${[Link]} demarre.`);
class Voiture extends Vehicule {
constructor(marque, modele) {
super(marque);
[Link] = modele;
demarrer() {
[Link]();
[Link](`${[Link]} est pret a partir.`);
const v = new Voiture("Toyota", "Corolla");
[Link]();
6. Collections en JavaScript
Set :
let set = new Set();
[Link]("a");
[Link]("b");
[Link]("a"); // ignore
[Link](set); // Set(2) { 'a', 'b' }
Map :
let map = new Map();
[Link]("nom", "Ali");
[Link]("age", 25);
[Link]([Link]("nom")); // Ali
7. Gestion des exceptions
try {
throw new Error("Une erreur est survenue !");
} catch (e) {
[Link]([Link]);
} finally {
[Link]("Bloc finally execute.");
Exception personnalisee :
class MonErreur extends Error {
constructor(message) {
super(message);
[Link] = "MonErreur";
throw new MonErreur("Ceci est une erreur personnalisee");