티스토리 뷰
<문제>
•실습1: Project에 대한 클래스
-속성: private (String)name, private (String)startDt, private (String)endDt
, private (String)locaiton, private (Developer[]) dev
- 생성자
Project(String name, String startDt, String endDt, String location)
Project(String name, String startDt, String endDt, String location,
Developer[] dev)
- 메소드:
public void process(): 모든 Project는다음의 4가지 과정을 거치게 된다
plan(), design(), develop()
public void plan(): “Project 준비” 출력
public void join(Developer d); Proejct에개발자 Add
public void design(): “설계작업수행” 출력
public void develop(); “개발작업수행” 출력
public int getPeriod(): Project 기간 리턴
public int getMMByDeveloper(); Project에참여한 개발자의 총 월간 개월수
public printDeveloper():
일반개발자 홍길동
일반개발자 김길동
고급개발자 김고급/특기 java
• HrPoejct 클래스 extends Project
- 메소드
public void design(): “HR 설계작업수행” 출력
public void develop(); “HR 개발작업수행” 출력
•Developer 클래스
- 속성:private (String)name, private (int)period
- 생성자
Developer(String name, int period)
- 메소드:
각 속성의 get/set Method
• HighDeveloper 클래스 extends Developer
- 속성:private (String)specialSkill
- 생성자
HighDeveloper(String name, int period, String specialSkill)
- 메소드
각 속성의 get/set Method
실습1
package Day190716;
import java.util.Calendar;
class Project{
private String name;
private Calendar startDt;
private Calendar endDt;
private String location;
private Developer[] day;
private int cnt = 0;
Developer[] developer = new Developer[50];
Developer d;
Project() {
}
Project(String name, Calendar startDt, Calendar endDt, String location){
this.name = name;
this.startDt = startDt;
this.endDt = endDt;
this.location = location;
}
Project(String name, Calendar startDt, Calendar endDt, String location, Developer[] day){
this(name, startDt, endDt, location);
this.day = day;
}
public void process() {
plan();
//join(d);
design();
develop();
}
public void plan() {
System.out.println("Project 준비");
}
//Project에 개발자 Add
public void join(Developer d) {
developer[cnt++] = d;
}
public void design() {
System.out.println("설계작업수행");
}
public void develop() {
System.out.println("개발작업수행");
}
// //Project 기간 리턴
// public int getPeriod() {
// return d.getPeriod();
// }
public int getMMByDeveloper() {
int sum = 0;
for(int i = 0; i < cnt; i++) {
sum += developer[i].getPeriod();
}
return sum;
}
public void printDeveloper() {
for(int i = 0; i < cnt; i++) {
Object obj = developer[i];
if(obj!=null && obj instanceof HighDeveloper)
{
System.out.println("고급개발자 " + developer[i].getName() + "/특기 " + ((HighDeveloper)developer[i]).getspecialSkill());
}
else if(obj!=null && obj instanceof Developer)
{
System.out.println("일반개발자 " + developer[i].getName());
}
}
}
}
class HrProject extends Project{
HrProject(){
}
HrProject(String name, Calendar startDt, Calendar endDt, String location) {
super(name, startDt, endDt, location);
}
HrProject(String name, Calendar startDt, Calendar endDt, String location, Developer[] day) {
super(name, startDt, endDt, location, day);
}
public void design() {
System.out.println("HR 설계작업수행");
}
public void develop() {
System.out.println("HR 개발작업수행");
}
}
class Developer{
private String name;
private int period;
Developer(String name, int period){
this.name = name;
this.period = period;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPeriod(int period) {
this.period = period;
}
public int getPeriod() {
return period;
}
}
class HighDeveloper extends Developer{
private String specialSkill;
HighDeveloper(String name, int period, String specialSkill) {
super(name, period);
this.specialSkill = specialSkill;
}
public void setspecialSkill(String specialSkill) {
this.specialSkill = specialSkill;
}
public String getspecialSkill() {
return specialSkill;
}
}
public class ProjectTest {
public static void main(String[] args) {
// HrProject hp = new HrProject();
// hp.design();
// hp.develop();
Project pro = new Project();
Developer p1 = new Developer("홍길동", 10);
Developer p2 = new Developer("김길동", 7);
Developer p3 = new Developer("영희", 5);
HighDeveloper p4 = new HighDeveloper("김고급", 12, "java");
pro.join(p1);
pro.join(p2);
pro.join(p3);
pro.join(p4);
System.out.println(pro.getMMByDeveloper());
pro.process();
pro.printDeveloper();
// System.out.println(hp.getMMByDeveloper());
}
}