// 문제 : 아래가 실행되도록 해주세요.
// 조건 : 배열을 사용할 수 없습니다.
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 사람인력관리소 {
int i = 1;
사람 a사람0; // add 함수에서 나온 사람들 정보를 저장한는 곳으로 쓸거
사람 a사람1;
사람 a사람2;
void add사람(String name, int age) {
System.out.printf("나이가 %s인 %d번째 사람(%s)이 추가되었습니다.\n", age, i, name);
사람 a사람 = new 사람();
a사람.이름 = name;
a사람.나이 = age;
if (i == 1) { // 번호가 1,2,3 인 사람들의 정보 저장해두기, 함수가 끝나면 정보가 날라가기때문에
a사람0 = a사람;
} else if (i == 2) {
a사람1 = a사람;
} else if (i == 3) {
a사람2 = a사람;
}
i++;
}
사람 get사람(int i) {
if (i == 1) {
return a사람0;
} else if (i == 2) {
return a사람1;
}
else if (i == 3) {
return a사람2;
}
return new 사람();
}
}
class 사람 {
int a = 1;
int 번호;
String 이름;
int 나이;
void 자기소개() {
System.out.printf("저는 %d번 %s, %d 살 입니다.\n", a, 이름, 나이);
a++;
}
사람() {
}
package s;
class Main {
public static void main(String[] args) {
전사 a전사1 = new 전사();
a전사1.a왼손무기 = new 칼();
a전사1.공격();
// 출력 => 전사가 왼손으로 칼(을)를 사용합니다.
전사 a전사2 = new 전사();
a전사2.a왼손무기 = new 창();
a전사2.a오른손무기 = new 도끼();
a전사2.공격();
// 출력 => 전사가 왼손으로 창(을)를 사용합니다.
// 출력 => 전사가 오른손으로 도끼(을)를 사용합니다.
}
}
class 전사 {
무기 a왼손무기;
무기 a오른손무기;
String hand;
void 공격() {
if (a왼손무기 != null) {
hand="왼손";
a왼손무기.동작(hand);
}
if (a오른손무기 != null) {
hand="오른손";
a오른손무기.동작(hand);
}
}
}
class 무기 {
void 동작(String hand) {
}
}
class 칼 extends 무기 {
void 동작(String hand) {
System.out.printf("%s 으로 칼을 사용 \n",hand);
}
}
class 창 extends 무기 {
void 동작(String hand) {
System.out.printf("%s 으로 창을 사용 \n",hand);
}
}
class 도끼 extends 무기 {
void 동작(String hand) {
System.out.printf("%s 으로 도끼을 사용\n",hand);
}
}
package s;
// 문제 : 아래와 같이 출력 되도록 해주세요.
// 조건 : 생성자를 단 1개만 사용해주세요.
class Main {
public static void main(String[] args) {
int 엄지손가락_길이 = new 사람().a왼팔.a손.a엄지손가락.길이;
System.out.println(엄지손가락_길이 + "cm");
// 출력 : 5cm
}
}
class 사람 {
팔 a왼팔;
손 a손;
손가락 a엄지손가락;
사람() {
a왼팔 = new 팔();
a왼팔.a손= new 손();
a왼팔.a손.a엄지손가락= new 손가락();
a왼팔.a손.a엄지손가락.길이=5;
}
}
class 팔 {
손 a손;
}
class 손 {
손가락 a엄지손가락;
}
class 손가락 {
int 길이;
}
'기타' 카테고리의 다른 글
사람인력관리소 연습장 (0) | 2023.06.23 |
---|---|
중국집 예제문제 (0) | 2023.06.21 |