Manipulation d'objets dans les classes en POO en JavaScript
Les classes, en tant que paramètres de méthodes, peuvent recevoir des objets d'autres classes et manipuler ces objets. Regardons un exemple. Supposons que nous ayons la classe suivante :
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Supposons que nous décidions de créer une classe qui manipulera un ensemble d'objets d'utilisateurs :
class UsersCollection {
}
Nous stockerons les objets d'utilisateurs sous forme de tableau dans une propriété privée :
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Créons une méthode pour ajouter un nouvel utilisateur au tableau :
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Et maintenant, créons une méthode qui affichera dans la console les noms de tous les utilisateurs :
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Regardons le fonctionnement de notre classe. Commençons par créer son objet :
let uc = new UsersCollection;
Maintenant, ajoutons à notre collection plusieurs utilisateurs :
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
Et maintenant, appelons la méthode qui affichera dans la console les noms de tous les utilisateurs :
uc.show();
Créez une classe EmployeesCollection,
qui contiendra un tableau d'employés.
Créez dans cette classe une méthode pour ajouter un nouvel employé.
Créez dans cette classe une méthode pour afficher tous les employés.
Créez dans cette classe une méthode pour calculer le salaire total de tous les employés.
Créez dans cette classe une méthode pour calculer le salaire moyen de tous les employés.