티스토리 뷰

Programming Language/Java 실습

7/16 실습

mming_0213 2019. 7. 20. 14:50

<문제>

...더보기

실습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());

	}

}

'Programming Language > Java 실습' 카테고리의 다른 글

7/17 실습  (0) 2019.07.20
7/16 실습-2  (0) 2019.07.20
7/15 실습  (0) 2019.07.20
7/12 실습  (0) 2019.07.20
7/11 실습  (0) 2019.07.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함