숙제: Employee 상속

JungSik Heo·2022년 9월 25일
0
post-custom-banner

1. 다음을 만족하는 클래스 Employee를 작성하시오(1에서 3번까지 관련된 문제입니다).

  • 클래스 Employee(직원)은 클래스 Regular(정규직)와 Temporary(비정규직)의 상위 클래스
  • 필드: 이름, 나이, 주소, 부서, 월급 정보를 필드로 선언
  • 생성자 : 이름, 나이, 주소, 부서를 지정하는 생성자 정의
    -메소드 printInfo() : 인자는 없고 자신의 필드 이름, 나이, 주소, 부서를 출력

2. 다음을 만족하는 클래스 Regular를 작성하시오.

  • 클래스 Regular는 위에서 구현된 클래스 Employee의 하위 클래스
  • 생성자 : 이름, 나이, 주소, 부서를 지정하는 상위 생성자 호출
  • Setter : 월급 정보 필드를 지정
  • 메소드 printInfo() : 인자는 없고 "정규직"이라는 정보와 월급을 출력

3. 다음을 만족하는 클래스 Temporary를 작성하시오.

  • 클래스 Temporary는 위 클래스 Employee의 하위 클래스
  • 필드 : 일한 시간, 시간당 보수를 선언하고 시간당 보수의 초기 값으로 10000 저장
  • 생성자 : 이름, 나이, 주소, 부서를 지정하는 상위 생성자 호출
  • Setter : 일한 시간을 지정하면서 급여를 일한 시간 * 시간당 보수로 계산하여 저장
  • 메소드 printInfo() : 인자는 없고 "비정규직"이라는 정보와 일한 시간과 급여를 출력
  • 또한 다음 프로그램으로 클래스 Employee, Regular, Temporary를 점검하는 프로그램 실행
public class EmployeeTest {

	public static void main(String arg[]) {

		// TODO Auto-generated method stub
		
		Regular r = new Regular("이순신", 35, "서울", "인사부");
		Temporary t = new Temporary("장보고", 25, "인천", "경리부");
		
		r.setSalary(5000000);
		r.printInfo();
		
		t.setWorkHours(120);
		t.printInfo();

	}
}

풀이=소스코드

public class Employee {
	String name; // 이름
	int age; // 나이
	String address; // 주소
	String department; //부서
	int salary; // 월급
	
	// 생성자
	Employee(String name, int age, String address, String department){
		this.name = name;
		this.age = age;
		this.address = address;
		this.department = department;
	}
	
	// 출력 함수
	public void printInfo() {
		System.out.println("이름 : "+name);
		System.out.println("나이 : "+age);
		System.out.println("주소 : "+address);
		System.out.println("부서 : "+department);
	}
}
public class Regular extends Employee{
	
	// 생성자
	Regular(String name, int age, String address, String department) {
		// 상위 생성자 호출
		super(name, age, address, department);
	}
	public void setSalary(int salary) {
		this.salary = salary;
	}
	
	public void printInfo() {
		super.printInfo();
		System.out.println("졍규직");
		System.out.println("월급 : "+salary);
	}

}
public class Temporary extends Employee{
	int workhour; // 일한 시간
	int time_pay; // 시간당 보수
	Temporary(String name, int age, String address, String department) {
		super(name, age, address, department);
		time_pay=10000;
	}
	public void setWorkHours(int workhour) {
		this.workhour = workhour;
		this.salary = workhour*time_pay;
	}
	public void printInfo() {
		super.printInfo();
		System.out.println("비졍규직");
		System.out.println("일한 시간 : "+workhour);
		System.out.println("급여 : "+salary);
		System.out.println();
	}
}
profile
쿵스보이(얼짱뮤지션)
post-custom-banner

0개의 댓글