문제 주소
https://code.oa.gg/java8/1442
// 문제 : 아래가 실행되도록 해주세요.
// 조건 : 배열을 사용할 수 없습니다.
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살 입니다.
}
}
우선 보이는 대로 사람인력관리소와 사람 클래스가 필요해보이니 그거부터 만들어 주자
그리고 보이는 함수 명들도 다 적어주자

이렇게 필요한 함수와 클래스를 만들었다. 이제 기본 뼈대는 완성됐으니 내용을 채워보자
add 함수의 내용들이 도출될수있게해보자.

실행될수 있게 메인클래스에서 다른부분들은 주석처리하고 실행 했더니 잘 출력되는것을 알수있다.
우선 각각 맞는곳에 매개변수를 두었고 사람이 추가될떄마다 몇번쨰인지는 1씩 늘어나니까 변수 i 를 만들어서 만들어질떄마다 1씩 커지게 하였다.
그리고 그 아래 get함수가 문제이다.
get 함수에서는 받는 인자들은 없지만 각각 사람에 따라 정보들을 도출하고 있다.
따라서 우린 add 함수와 사람인력관리 클래스에서 정보들을 저장할수 있게해야한다.

add 함수에서는 나오는 번호(i)는 각각 다르니 번호를 기준으로 나눠보자
번호가 1인 정보는 사람1 한테 저장하고 2는 2한테 이런식으로
이제 저장을 끝마쳤으니 get 함수를 이용해서 도출해보자
아그리고 아까 add 함수에서 만든 변수들은 그함수에서만 쓸수있는 변수 였으니
사람인력관리소에도 똑같은 변수를 만들어주자
get에 있는 a사람1 과 헷갈릴수도 있으니 변수명은 사람1로 해주었다.

이제 get 함수에서는 저장한 정보들을 다시 꺼내보자.
get에는 인자 들이 있고 이번에도 1,2,3 으로 바뀌는 인자들이 있으니
이 번호들을 기준으로 if 문을 통해서 정보를 꺼내서 자기소개 함수에서 쓸수 있게 해보자
아아 실수한점이 있다.
지금 사람1,2,3 변수를 만들고 객체를 만든것을 add 함수 안에서 해버렸다.!!...ㅎ
그러면 함수가 끝나면 그 객체는 사라진다. !!
함수가아니라 클래스 안에서 객체를 선언해주자!

후 이제 진짜로 해보자 get에서 정보를 받아와 보자

add 함수에서 한 방법과 비슷하게 번호가 1 일떄 2일때 3일떄 이렇게 나눠서 해봤다.
그리고 메인 클래스에서
사람 a사람1 = a사람인력관리소.get사람(1);
a사람1.자기소개();
이런식으로 되어있으니 return 값을 사람1 로해서 a사람1에 사람1에 저장되었던 객체값을 쓸수 있게해주는 리모콘을 복사해주자.
2번 3번도 똑같이해주고
이제 마지막으로 자기소개 함수에 그대로 받은 변수들만 써주면 된다.

그러면 이렇게 나온다. 보면 k 값이 오르지 않고 1로 계속 초기화 되면서 들어가는데
아마도 get 함수에서 서로 다른 객체에서 만들어지기 때문에 그런것같다.
그래서 이걸을 고쳐주기 위해 앞에 static 을 붙여보자

끝 완성이다!

끝!!!!!!!!!!!!!!!!!!!!!!
'자바' 카테고리의 다른 글
| 2023-06-26 상수 , static (0) | 2023.06.26 |
|---|---|
| 20203 -6 -24 다차원 배열 ,배열에 쓰이는 함수 (0) | 2023.06.24 |
| 2023-06-21 추상 클래스, interfacce, 올바른 리턴 타입으로 메서드 만들기 예제 문제 (0) | 2023.06.21 |
| 2023-06-20 클래스 생성자 만들기 (0) | 2023.06.20 |
| 2023-06-19 클래스 타입 변환, 매개변수 이용하기 (0) | 2023.06.19 |