// 문제 : 아래가 실행되도록 해주세요.
// 조건 : 배열을 사용할 수 없습니다.
class Main {
public static void main(String[] args) {
사람인력관리소 a사람인력관리소 = new 사람인력관리소();
a사람인력관리소.add사람("홍길순", 33);
// 나이가 33살인 1번째 사람(홍길순)이 추가되었습니다.
a사람인력관리소.add사람("홍길동", 20);
// 나이가 20살인 2번째 사람(홍길동)이 추가되었습니다.
a사람인력관리소.add사람("임꺽정", 30);
// 나이가 30살인 3번째 사람(임꺽정)이 추가되었습니다.
사람 a사람1 = a사람인력관리소.get사람(1);
a사람1.자기소개();
// 저는 1번, 홍길순, 33살 입니다.
사람 a사람2 = a사람인력관리소.get사람(2);
a사람2.자기소개();
// 저는 2번, 홍길동, 20살 입니다.
사람 a사람3 = a사람인력관리소.get사람(3);
a사람3.자기소개();
// 저는 3번, 임꺽정, 30살 입니다.
}
}
class 사람{
String name;
int age, count;
// 이름, 나이, 번호 초기화
public 사람(String name, int age, int count){
this.name = name;
this.age = age;
this.count = count;
}
//자기소개 함수
public void 자기소개(){
System.out.printf("%d번 %s %d\n", count ,name, age);
}
}
//사람인력관리소 클래스
class 사람인력관리소{
//카운트
int count;
//처음 사람마다 클래스를 지정 (나중에 다시 보내주기 위한)
사람 사람1;
사람 사람2;
사람 사람3;
// add사람 함수
public void add사람(String name, int age){
//함수 호출시 마다 count 1씩증가
count++;
//각 번호에 맞게 이름 나이 카운트를 ClassMethod함수를 통해 객체 생성
if(count == 1)
사람1 = classMethod(name, age, count);
else if(count == 2)
사람2 = classMethod(name, age, count);
else if(count == 3)
사람3 = classMethod(name, age, count);
}
//사람 객체를 만들어 주는 함수 (함수의 목적:바복을 줄이기위해 만들음)
public 사람 classMethod(String name, int age, int count){
return new 사람(name, age, count);
}
//get사람 함수 (숫자를 받아서 기존에 만든 사람1,2,3 와 만들어진 a사람1,2,3 을 매치시켜 새로운 객체를 생성)
public 사람 get사람(int num){
if(num == 1)
return 사람1;
else if(num == 2)
return 사람2;
else if(num == 3)
return 사람3;
return null;
}
}