Manipolazione di oggetti nelle classi in OOP in JavaScript
Le classi come parametri di metodi possono accettare oggetti di altre classi e manipolare questi oggetti. Diamo un'occhiata a un esempio. Supponiamo di avere la seguente classe:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Supponiamo di voler creare una classe che manipolerà una raccolta di oggetti utente:
class UsersCollection {
}
Memorizzeremo gli oggetti utente come array in una proprietà privata:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Creiamo un metodo per aggiungere un nuovo utente all'array:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
E ora creiamo un metodo che stamperà nella console i nomi di tutti gli utenti:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Diamo un'occhiata al funzionamento della nostra classe. Per iniziare creiamo il suo oggetto:
let uc = new UsersCollection;
Ora aggiungiamo alla nostra collezione diversi utenti:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
E ora chiamiamo il metodo che stamperà nella console i nomi di tutti gli utenti:
uc.show();
Crea una classe EmployeesCollection,
che conterrà un array di dipendenti.
Crea in questa classe un metodo per aggiungere un nuovo dipendente.
Crea in questa classe un metodo per visualizzare tutti i dipendenti.
Crea in questa classe un metodo per calcolare il salario totale di tutti i dipendenti.
Crea in questa classe un metodo per calcolare il salario medio di tutti i dipendenti.