Objektų manipuliavimas klasėse OOP JavaScript

Klasės, kaip metodų parametrai, gali priimti kitų klasių objektus ir manipuliuoti šiais objektais. Pažiūrėkime pavyzdžiu. Tarkime, turime šią klasę:

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

Tarkime, nusprendėme sukurti klasę, kuri manipuliuos vartotojų objektų rinkiniu:

javascriptclass UsersCollection {
  
}

Vartotojų objektus saugosime kaip masyvą privatiame savyjeje:

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

Sukurkime metodą naujo vartotojo pridėjimui į masyvą:

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

Dabar sukurkime metodą, kuris išvestų į konsolę visų vartotojų vardus:

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

Pažiūrėkime, kaip veikia mūsų klasė. Pirmiausia sukurkime jos objektą:

javascriptlet uc = new UsersCollection;

Dabar į mūsų kolekciją pridėkime kelis vartotojus:

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

Ir iškvikime metodą, kuris išves į konsolę visų vartotojų vardus:

javascriptuc.show();
Задание 1

Sukurkite klasę EmployeesCollection, kuri talpins darbuotojų masyvą.

Задание 2

Šioje klasėje sukurkite metodą naujo darbuotojo pridėjimui.

Задание 3

Šioje klasėje sukurkite metodą visų darbuotojų išvedimui.

Задание 4

Šioje klasėje sukurkite metodą bendram visų darbuotojų atlyginimų apskaičiavimui.

Задание 5

Šioje klasėje sukurkite metodą vidutiniam visų darbuotojų atlyginimui apskaičiuoti.