JavaScript OOP에서 클래스 객체 조작하기

메서드의 매개변수로 클래스는 다른 클래스의 객체를 받아서 해당 객체를 조작할 수 있습니다. 예제를 통해 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:

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

사용자 객체 집합을 조작하는 클래스를 만들기로 결정했다고 가정해 봅시다:

javascriptclass UsersCollection {
  
}

사용자 객체를 비공개 속성에 배열 형태로 저장하겠습니다:

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

배열에 새 사용자를 추가하는 메서드를 만들어 보겠습니다:

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

이제 모든 사용자의 이름을 콘솔에 출력하는 메서드를 만들어 보겠습니다:

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

우리 클래스의 동작을 살펴보겠습니다. 먼저 해당 객체를 생성해 보겠습니다:

javascriptlet uc = new UsersCollection;

이제 컬렉션에 사용자 몇 명을 추가해 보겠습니다:

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

이제 모든 사용자의 이름을 콘솔에 출력하는 메서드를 호출해 보겠습니다:

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

직원 배열을 포함하는 EmployeesCollection 클래스를 만드세요.

Задание 2

이 클래스에 새 직원을 추가하는 메서드를 만드세요.

Задание 3

이 클래스에 모든 직원을 출력하는 메서드를 만드세요.

Задание 4

이 클래스에 모든 직원의 총 급여를 계산하는 메서드를 만드세요.

Задание 5

이 클래스에 모든 직원의 평균 급여를 계산하는 메서드를 만드세요.