Manipulação de objetos em classes em POO em JavaScript
Classes, como parâmetros de métodos, podem aceitar objetos de outras classes e manipular esses objetos. Vamos ver um exemplo. Suponha que temos a seguinte classe:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Suponha que decidimos criar uma classe que irá manipular um conjunto de objetos de usuários:
class UsersCollection {
}
Vamos armazenar os objetos de usuários na forma de um array em uma propriedade privada:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Vamos criar um método para adicionar um novo usuário ao array:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
E agora vamos criar um método que exibirá no console os nomes de todos os usuários:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Vamos ver como nossa classe funciona. Primeiro, vamos criar um objeto dela:
let uc = new UsersCollection;
Agora vamos adicionar à nossa coleção alguns usuários:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
E agora vamos chamar o método que exibirá no console os nomes de todos os usuários:
uc.show();
Faça a classe EmployeesCollection,
que irá conter um array de funcionários.
Nesta classe, faça um método para adicionar um novo funcionário.
Nesta classe, faça um método para listar todos os funcionários.
Nesta classe, faça um método para calcular o salário total de todos os funcionários.
Nesta classe, faça um método para calcular o salário médio de todos os funcionários.