Menu
Coddy logo textTech

요약 - 직원 계층 구조

Coddy Java 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 87개 중 27번째.

challenge icon

챌린지

쉬움

이 장에서 배운 모든 상속 개념을 통합하는 완전한 직원 계층 시스템을 구축해 봅시다. 서로 다른 유형의 직원이 공통 속성을 공유하면서도 자신만의 특화된 동작을 갖는 회사 구조를 만들 것입니다.

코드는 다음 네 개의 파일로 구성됩니다:

  • Employee.java: 모든 직원이 공유하는 기본 클래스를 생성합니다. 모든 직원은 이름(name)과 급여(salary)를 가집니다. 두 필드를 초기화하는 생성자와 [name] earns $[salary]를 반환하는 getDetails() 메서드를 포함하세요. 또한 [name] is working을 출력하는 work() 메서드를 추가하세요.
  • Manager.java: Employee를 상속받는 클래스를 생성합니다. 매니저는 관리하는 인원수를 나타내는 추가 필드 teamSize를 가집니다. 부모의 초기화를 처리하기 위해 super를 사용하세요. work() 메서드를 오버라이드하여 [name] is managing a team of [teamSize]를 출력하도록 하세요. Manager: [name] earns $[salary], Team size: [teamSize]를 반환하는 getManagerDetails() 메서드를 추가하세요.
  • Developer.java: Employee를 상속받는 또 다른 클래스를 생성합니다. 개발자는 프로그래밍 전문 분야를 위한 language 필드를 가집니다. 마찬가지로 부모 부분을 위해 super를 사용하세요. work()를 오버라이드하여 [name] is coding in [language]를 출력하도록 하세요. Developer: [name] earns $[salary], Language: [language]를 반환하는 getDeveloperDetails() 메서드를 추가하세요.
  • Main.java: 여기서 모든 것을 하나로 합칩니다. 다섯 개의 입력을 받게 됩니다: 매니저의 이름, 급여, 팀 규모, 그리고 개발자의 이름과 프로그래밍 언어입니다. Manager와 Developer 객체를 생성한 다음, 각각에 대해 특화된 상세 정보 메서드를 호출하고 이어서 work() 메서드를 호출하세요.

입력은 매니저 이름(String), 매니저 급여(double), 팀 규모(int), 개발자 이름(String), 프로그래밍 언어(String) 순서로 다섯 개가 주어집니다. 개발자의 급여는 75000.0을 사용하세요.

모든 급여 값은 String.format("%.2f", salary)를 사용하여 소수점 둘째 자리까지 형식을 맞추세요. 출력은 매니저의 상세 정보와 업무 동작, 이어서 개발자의 상세 정보와 업무 동작까지 총 네 줄로 표시되어야 합니다.

직접 해보기

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 입력 읽기
        String managerName = scanner.nextLine();
        double managerSalary = scanner.nextDouble();
        int teamSize = scanner.nextInt();
        scanner.nextLine(); // 개행 문자 소비
        String developerName = scanner.nextLine();
        String language = scanner.nextLine();
        
        // Developer 급여는 75000.0으로 고정됨
        double developerSalary = 75000.0;
        
        // TODO: managerName, managerSalary, teamSize를 사용하여 Manager 객체 생성
        
        // TODO: developerName, developerSalary, language를 사용하여 Developer 객체 생성
        
        // TODO: getManagerDetails()를 사용하여 manager의 상세 정보 출력
        
        // TODO: manager의 work() 메서드 호출
        
        // TODO: getDeveloperDetails()를 사용하여 developer의 상세 정보 출력
        
        // TODO: developer의 work() 메서드 호출
    }
}

객체 지향 프로그래밍의 모든 레슨