package Exam2;
import java.util.Scanner;
// 부모클래스_추상클래스
abstract class Employee {
String name;
// 기본 생성자
public Employee() {}
// 인자 생성자
public Employee(String name) {
this.name = name;
}
public String getName() {
return name;
}
// 급여를 계산하는 메소드
// 정규직과 비정규직의 급여 계산법과 변수가 다르므로 추상메소드로 작성한다.
abstract int getPays(); // 추상 메소드
}
// 정규직 클래스
class Permanent extends Employee {
// 멤버 변수 선언
int salary; // 기본급
int bonus; // 보너스
// 기본 생성자
public Permanent() {}
// 인자 생성자
public Permanent(String name, int salary, int bonus) {
this.name = name;
this.salary = salary;
this.bonus = bonus;
}
// 게터와 세터
public int getSalary() {
return salary;
}
public int getBonus() {
return bonus;
}
// 추상클래스의 추상메소드를 재정의
@Override
int getPays() {
return salary + bonus;
}
}
// 임시직 클래스
class Temporary extends Employee {
// 멤버변수
int time; // 작업 시간
int pay; // 시간당 급여
// 기본 생성자
public Temporary() {}
// 인자 생성자
public Temporary(String name, int time, int pay) {
this.name=name;
this.time=time;
this.pay=pay;
}
// 게터와 세터
public int getTime() {
return time;
}
public int getPay() {
return pay;
}
// 추상클래스의 추상메소드 재정의
@Override
int getPays() {
return time * pay;
}
}
public class Exam_01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("고용형태 - 정규직<P>, 임시직<T>를 입력하세요. ");
String type=sc.next();
// 정규직
// equalsIgnoreCase() : 대소문자 구분없이 같은 문자인지 판별
if(type.equalsIgnoreCase("P")) {
type="정규직";
System.out.println("이름, 기본급, 보너스를 입력하세요.");
Permanent permanent =
new Permanent(sc.next(), sc.nextInt(), sc.nextInt());
System.out.println("================================");
System.out.println("고용형태 : " + type);
System.out.println("이 름 : " + permanent.getName());
System.out.printf("급 여 : %,d원" , permanent.getPays()); }
// 임시직
else if(type.equalsIgnoreCase("T")) {
type="임시직";
System.out.println("이름, 작업 시간, 시간당 급여를 입력하세요.");
Temporary temporary =
new Temporary(sc.next(), sc.nextInt(), sc.nextInt());
System.out.println("================================");
System.out.println("고용형태 : " + type);
System.out.println("이 름 : " + temporary.getName());
System.out.printf("급 여 : %,d원" , temporary.getPays()); }
}
}
결과
정규직
고용형태 - 정규직<P>, 임시직<T>를 입력하세요.
P
이름, 기본급, 보너스를 입력하세요.
김아무개
2000000
500000
================================
고용형태 : 정규직
이 름 : 김아무개
급 여 : 2,500,000원
임시직
고용형태 - 정규직<P>, 임시직<T>를 입력하세요.
t
이름, 작업 시간, 시간당 급여를 입력하세요.
이아무개
52
12000
================================
고용형태 : 임시직
이 름 : 이아무개
급 여 : 624,000원
'문제 풀이 > Java' 카테고리의 다른 글
[Java] 인터페이스를 이용하여 원과 사각형의 면적을 구해보자 (0) | 2021.09.02 |
---|---|
[Java] 상속과 메서드 오버로딩을 활용하여 급여관리 시스템 만들어보기 (0) | 2021.08.30 |
[Java] 클래스 응용문제_영수증 출력하기 (0) | 2021.08.29 |
[Java] 클래스 응용문제_TV 정보 바꾸기 (0) | 2021.08.23 |
[Java] 배열 알고리즘 응용문제 (0) | 2021.08.20 |
댓글