안녕하세요 추상클래스 질문했던 한 학생입니다. 자바 고수님들 도와주세요..ㅜㅜ
돋되다
답변 감사드립니다. 제가 너무 성의없이 질문을 던진거 같아서 정말 죄송스럽게 생각드립니다.
제가 그래서 제 스스로 유사한 문제를 찾아보고 풀어보았는데요 제가 모르는 부분들을 주석으로 만들어봤는데
주석 부분만 알려주시면 어제 질문했던 문제를 스스로 풀어보겠습니다.
문제는 직원이 부모클래스 이고 직원밑에는 정규직원과 비정규직원 이라는 자식클래스가 있고
비정규직원 밑에 다시 임시직원과 인턴사원이라는 자식클래스가 있습니다.
첨부파일로 올렸는데요 주석 몇개 안돼니 주석부분만 이라도 알려주시면 다음문제는 응용해서 제가 해보도록 하겠습니다.
부탁드리겠습니다... ^^ ps_)제가 아직 학부 2학년 생이라 보니 실력이 미진합니다. 좀 도와주세요..저도 훌륭한 프로그래머가 되고 싶습니다...^^
abstract class Employee
{
//일반 직원에 대한 객체 변수들을 선언한다.
public Employss (String name, String address, String department)
{
//직원의 변수들 값을 주어진 값들로 초기화한다.
}
public String toString()
{
String result = 이름: + name + \n;
result += 주소: + address + \n;
result += 소속부서: + department;
return result;
}
public abstract double pay();
}
class RegEmployee extends Employee
{
//정규 직원에 대한 객체 변수들을 선언한다.
public RegEmployee (String name, String address, String department, int empNumber, String rank, double yearlySalary, double bonusRate)
{
//부모 클래스의 생성자 메소드를 적절한 매개변수들을 가지고 호출한다.
//새롭게 정의된 변수들의 값들을 적절하게 정한다.
}
public double pay()
{
//이 정규 직원의 연간 총봉급액을 되돌려 준다.
}
public String toString()
{
String result = super.toString();
result += \n직원번호: + empNumber;
result += \n직급: + rank;
result += \n연봉: + yearlySalary;
result += \n보너스 지급율: + bonusRate;
return result;
}
}
class TempEmployee extends Employee
{
//비정규 직원에 대한 객체 변수들을 선언한다.
public TempEmployee (String name, String address, String department, String contractexpdate, double basicPay)
{
//부모 클래스의 생성자 메소드를 적절한 매개변수들을 가지고 호출한다.
//새롭게 정의된 변수들의 값들을 적절하게 정한다.
}
public double pay()
{
//이 비정규 직원의 기봇坪?기본임금을 되돌려 준다.
}
public String toString()
{
String result = super.toString();
result += \n계약 만료일: + contractexpdate;
result += \n기본 임금: + basicPay;
return result;
}
}
class HourlyEmployee extends TempEmployee
{
// 임시직원에 대한 객체 변수들을 선언한다.
public HourlyEmployee (String name, String address, String department, String contractexpdate, double basicPay, double payRate)
{
//부모클래스의 생성자 메소드를 적절한 매개변수들을 가지고 호출한다.
//새롭게 정의된 변수들의 값들을 적절하게 정한다.
}
public double pay()
{
//이 임시 직원의 봉급액을 되돌려 준다.
}
public void addHours (int moreHours)
{
//이 임시 직원의 추가 근무시간을 누적된 근무시간에 더한다.
}
public String toString()
{
String result = super.toString();
result += \n시간당 임금: + payRate;
result += \n근무 시간: + hourWorked;
return result;
}
}
class Intern extends TempEmployee
{
//인턴사원에 대한 객체 변수를 선언한다.
public Intern (String name, String address, String department, String contractexpdate, double basicPay, double payPercent)
{
//부모 클래스의 생성자 메소드를 적절한 매개변수들을 가지고 호출한다.
//새롭게 정의된 변수들의 값들을 적절하게 정한다.
}
public double pay()
{
//이 인턴사원의 봉급액을 되돌려 준다.
}
public String yoString()
{
String result = super.toString();
result += \n임금 지급율: + payPercent;
return result;
}
}
class EmployeeDriver
{
Employee[] employList;
public EmployeeDriver()
{
employeeList = new Employee[6];
employeeList = new RegEmployee (선미, 서소문 123, 마케팅, 9352345,9352345, 이사, 7000.0, 1.4);
employeeList[1] = new RegEmployee (종미, 대치 456, 인사, 9874321, 과장, 4000.0, 1.2);
employeeList[2] = new RegEmployee (지나, 명동 789, 연구개발, 12-03-31, 2500.0);
employeeList[3] = new RegEmployee (단형, 유성 678, 기획, 07-07-31, 2000.0, 10.0);
employeeList[4] = new RegEmployee (총무, 08-12-31, 1600.0, 5.0);
employeeList[5] = new RegEmployee (연구개발, 10-06-31, 1200.0, 0.6);
((HourlyEmployee)employeeList[3]).addHours (30);
((HourlyEmployee)employeeList[4]).addHours (40);
((HourlyEmployee)employeeList[3]).addHours (50);
((HourlyEmployee)employeeList[4]).addHours (60);
((HourlyEmployee)employeeList[3]).addHours (20);
((HourlyEmployee)employeeList[4]).addHours (30);
}
public void payday()
{
double amount;
for (int count=0, count employeeList.length; count++)
{
System.out.println(employeeList[count]);
amount = employeeList[count].pay();
System.out.println(지급액: + amount);
System.out.println(----------------------------);
}
}
public static void main(String[] args)
{
EmployeeDriver personnel = new EmployeeDriver();
personnel.payday();
}
}
-
베네딕트
hwp 의 압박..