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();
}
}