PHP 객체 지향 프로그래밍에서 클래스의 객체 조작

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

php<?php
  class User {
    private $name;
    
    public function __construct($name) {
      $this->name = $name;
    }
    
    public function getName() {
      return $this->name;
    }
  }
?>

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

php<?php
  class UsersCollection {
    
  }
?>

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

php<?php
  class UsersCollection {
    private $users;
    
    public function __construct() {
      $this->users = [];
    }
  }
?>

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

php<?php
  class UsersCollection {
    private $users;
    
    public function __construct() {
      $this->users = [];
    }
    
    public function add($user) {
      $this->users[] = $user;
    }
  }
?>

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

php<?php
  class UsersCollection {
    private $users;
    
    public function __construct() {
      $this->users = [];
    }
    
    public function add($user) {
      $this->users[] = $user;
    }
    
    public function show() {
      foreach ($this->users as $user) {
        echo $user->getName() . '<br>';
      }
    }
  }
?>

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

php<?php
  $uc = new UsersCollection();
?>

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

php<?php
  $uc->add(new User('john'));
  $uc->add(new User('eric'));
  $uc->add(new User('kyle'));
?>

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

php<?php
  $uc->show();
?>
Задание 1

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

Задание 2

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

Задание 3

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

Задание 4

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

Задание 5

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