요약 - 직원 계층 구조
Coddy Java 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 87개 중 27번째.
챌린지
쉬움이 장에서 배운 모든 상속 개념을 통합하는 완전한 직원 계층 시스템을 구축해 봅시다. 서로 다른 유형의 직원이 공통 속성을 공유하면서도 자신만의 특화된 동작을 갖는 회사 구조를 만들 것입니다.
코드는 다음 네 개의 파일로 구성됩니다:
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() 메서드 호출
}
}
객체 지향 프로그래밍의 모든 레슨
4상속
상속의 기초 (extends)super 키워드메서드 오버라이딩 (@Override)생성자 체이닝Object 클래스단일 및 다중 레벨 상속다중 클래스 상속이 불가능한 이유요약 - 직원 계층 구조