Appearance
Les classes
Les classes en JavaScript, introduites avec ES6 (ECMAScript 2015), sont une manière plus claire et plus concise de créer des objets et de gérer l'héritage. Elles offrent une syntaxe plus familière pour ceux qui viennent d'autres langages de programmation orientés objet, comme Java ou C#. Les classes en JavaScript sont en réalité des "sucre syntaxique" sur le prototype existant de la fonction de base, fournissant ainsi une manière plus simple de créer des objets et de gérer l'héritage.
Déclaration de Classe
Une classe est définie en utilisant le mot-clé class
, suivi du nom de la classe.
javascript
class Personne {
constructor(nom, age) {
this.nom = nom;
this.age = age;
}
sePresenter() {
console.log(`Je m'appelle ${this.nom} et j'ai ${this.age} ans.`);
}
}
Dans cet exemple, Personne
est une classe avec un constructeur pour initialiser l'objet, et une méthode sePresenter
.
Instanciation d'Objets
Les objets sont créés à partir d'une classe en utilisant le mot-clé new
.
javascript
let alice = new Personne("Alice", 25);
alice.sePresenter(); // "Je m'appelle Alice et j'ai 25 ans."
Héritage de Classe
JavaScript prend en charge l'héritage, permettant à une classe de hériter des propriétés et méthodes d'une autre.
javascript
class Etudiant extends Personne {
constructor(nom, age, cursus) {
super(nom, age); // Appel du constructeur de la classe parente
this.cursus = cursus;
}
sePresenter() {
super.sePresenter(); // Appel de la méthode de la classe parente
console.log(`J'étudie en ${this.cursus}.`);
}
}
let bob = new Etudiant("Bob", 20, "Informatique");
bob.sePresenter();
// "Je m'appelle Bob et j'ai 20 ans."
// "J'étudie en Informatique."
Getters et Setters
Les classes peuvent également inclure des getters et des setters pour accéder et modifier les propriétés.
javascript
class Personne {
constructor(nom) {
this._nom = nom;
}
get nom() {
return this._nom;
}
set nom(value) {
this._nom = value;
}
}
let charlie = new Personne("Charlie");
console.log(charlie.nom); // "Charlie"
charlie.nom = "Charles";
console.log(charlie.nom); // "Charles"
Avantages des classes
- Syntaxe Claire : La syntaxe des classes est plus propre et plus facile à comprendre, surtout pour les développeurs issus d'autres langages orientés objet.
- Encapsulation : Les classes encouragent une meilleure encapsulation et organisation du code.
- Réutilisabilité et Héritage : Elles facilitent la réutilisabilité du code et l'implémentation de l'héritage.