Ubadilishaji wa Vitu katika Madarasa katika OOP katika JavaScript

Madarasa yanaweza kukubali vitu vya madarasa mengine kama parameta za mbinu na kuyabadilisha vitu hivyo. Tuangalie kwa mfano. Tuchukulie tuna darasa lifuatalo:

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

Tuchukulie tumeamua kutengeneza darasa, ambalo litabadilisha msururu wa vitu vya watumiaji:

javascriptclass UsersCollection {
  
}

Tutaweka vitu vya watumiaji katika mfumo wa safu katika siri maalum:

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

Tutengeneze mbinu ya kuongeza mtumiaji mpya kwenye safu:

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

Sasa tutengeneze mbinu ambayo itaonyesha majina ya watumiaji wote kwenye koni:

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

Tuangalie utendaji wa darasa letu. Kwanza tuunde kitu chake:

javascriptlet uc = new UsersCollection;

Sasa tuongeze kwenye mkusanyiko wetu watumiaji kadhaa:

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

Sasa tuitanye mbinu ambayo itaonyesha kwenye koni majina ya watumiaji wote:

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

Tengeneza darasa EmployeesCollection, ambalo litakuwa na safu ya wafanyikazi.

Задание 2

Tengeneza katika darasa hili mbinu ya kuongeza mfanyikazi mpya.

Задание 3

Tengeneza katika darasa hili mbinu ya kuonyesha wafanyikazi wote.

Задание 4

Tengeneza katika darasa hili mbinu ya kukokotoa jumla ya mishahara ya wafanyikazi wote.

Задание 5

Tengeneza katika darasa hili mbinu ya kukokotoa mshahara wa wastati wa wafanyikazi wote.