Ted's Codding study

퀴즈 - 직원 관리 시스템 본문

TypeScript

퀴즈 - 직원 관리 시스템

Ted93 2024. 6. 30. 10:35

Employee 기본 클래스 생성

class Employee {
  // 속성: name (문자열)과 id (숫자)
  // 생성자를 사용하여 초기화
  // 메서드: displayInfo() 메서드 - 직원의 정보를 출력
}
정답
class Employee {
  constructor(
    public name: string,
    public id: number,
  ) {}
  displayInfo() {
    console.log(`Name: ${this.name}, Id: ${this.id}`);
  }
}

 

Manager 클래스 생성

Employee 클래스를 확장

class Manager extends Employee {
  // 추가 속성: subordinates (Employee 배열)
  // 부모 클래스의 생성자를 호출
  // 메서드: addSubordinate(employee: Employee) 메서드 - 하위 직원을 목록에 추가  
  // 메서드: listSubordinates() - 모든 하위 직원의 정보를 출력  
}
정답
class Manager extends Employee {
  private subordinates: Employee[] = [];
  constructor(name: string, id: number) {
    super(name, id);
  }
  addSubordinate(employee: Employee) {
    this.subordinates.push(employee);
  }
  listSubordinates(): void {
    console.log(`Manager: ${this.name}`);
    this.subordinates.forEach((emp) => emp.displayInfo());
  }
}

 

사용 및 출력

const managerA = new Manager('테드', 1);
const emp1 = new Employee('찰리', 2);
const emp2 = new Employee('마이클', 3);

managerA.addSubordinate(emp1);
managerA.addSubordinate(emp2);
managerA.listSubordinates();
// Manager: 테드
// Name: 찰리, Id: 2
// Name: 브라운, Id: 3

 

 

노션으로 보고 싶다면?

https://short-echidna-b16.notion.site/126f533e69834acb8cc50831e0a10729?pvs=4

 

퀴즈 - 직원 관리 시스템 | Notion

목차

short-echidna-b16.notion.site