# Манипуляция объектами в классах в ООП в JavaScript

Классы параметрами методов могут принимать объекты других классов и манипулировать этими объектами. Давайте посмотрим на примере. Пусть у нас есть следующий класс:

`class User { #name; constructor(name) { this.#name = name; } getName() { return this.#name; } }`

Пусть мы решили сделать класс, который будет манипулировать набором объектов с юзерами:

`class UsersCollection { }`

Будем хранить объекты с юзерами в виде массива в приватном свойстве:

`class UsersCollection { #users; constructor() { this.#users = []; } }`

Сделаем метод для добавления нового юзера в массив:

`class UsersCollection { #users; constructor() { this.#users = []; } add(user) { this.#users.push(user); } }`

А теперь сделаем метод, который выведет в консоль имена всех юзеров:

`class UsersCollection { #users; constructor() { this.#users = []; } add(user) { this.#users.push(user); } show() { for (let user of this.#users) { console.log(user.getName()); } } }`

Давайте посмотрим на работу нашего класса. Для начала создадим его объект:

`let uc = new UsersCollection;`

Теперь добавим в нашу коллекцию несколько юзеров:

`uc.add(new User('john')); uc.add(new User('eric')); uc.add(new User('kyle'));`

А теперь вызовем метод, который выведет в консоль имена всех юзеров:

`uc.show();`

Сделайте класс `EmployeesCollection`, который будет содержать массив работников.

Сделайте в этом классе метод для добавления нового работника.

Сделайте в этом классе метод для вывода всех работников.

Сделайте в этом классе метод для расчета суммарной зарплаты всех работников.

Сделайте в этом классе метод для расчета средней зарплаты всех работников.

← →
↑