클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

클래스와 객체 7 - 객체 배열 1 : 객체 배열의 개념과 학생 점수 관리 프로그램 만들기 본문

프로그래밍 언어/자바

클래스와 객체 7 - 객체 배열 1 : 객체 배열의 개념과 학생 점수 관리 프로그램 만들기

huenuri 2024. 8. 17. 18:15

생성자까지 공부했는데 객체 배열이 무엇인지 알아보기로 하자. 두 달 전에 수업을 들을 때는 무슨 말인지 하나도 이해하지 못했는데 이제는 이해할 수 있을 것 같다.

두 달이라는 시간동안 난 무엇을 배웠을까? 별로 많은 걸 공부하지 못한 것 같고 하나도 성장하지 않은 것처럼 느껴졌지만 그래도 나름 배운 바가 있었다.


 

 

 

 

객체 배열이 필요한 이유

 

 

클래스를 만들면 여러가지 형태의 자료형을 한번에 관리할 수 있다. 하지만 이 자료형을 순서대로 더 많이 관리하고 싶을 때가 있다. 그럴 때 객체 배열을 사용한다.

여기서 Person은 사용자가 임의로 만든 자료형이라고 볼 수 있다. Person이라는 자료형을 관리할 수 있는 배열도 만들 수 있다. 

 

 

 

 

 

우리는 이 배열의 주소값 안에 있는 변수에 접근해서 값을 가져올 것이다. 이럴 때 점 연산자를 사용한다.


 

 

 

 

객체 배열 예제 문제 풀어보기

 

1. 객체 배열의 개념 익히기

 

이전에 만들었던 Person2 클래스 안에 객체 배열을 만들어볼 것이다.

 

 

이 자료형을 하나의 묶음으로 관리하는 것이다.

 

 

 

1) 객체 배열 생성하기

 

 

 

출력을 해보면 이렇게 주소값이 출력된다. 이럴 때 주소값을 참조하여 저장된 값을 불러온다.


 

 

 

2) 배열의 값 출력하기

 

이렇게 하니 0번 인덱스와 1번 인덱스의 이름이 잘 출력되고 있다. 하지만 이 부분이 반복되므로 반복문을 사용하면 더 쉽게 풀 수 있다.

 

반복되는 것은 순차적인 접근이 가능하도록 반복문으로 담아준다.

 

 

 


 

 

 

 

2. 학생 점수를 객체 배열로 담는 프로그램

 

 

 

 

 

 

1) 필드 만들기

 

이렇게 만들고 나면 자동으로 getter와 setter를 만들 수 있는 기능이 있다. 지금까지는 손으로 일일이 작성했지만 한번에 초기화시키는 기능이 있다고 한다.

빈 공간에 Alt + Shitf + s를 누르면 창이 나타나는데 거기서  Generate Constructor using Field라는 메뉴른 선택한다. 이걸 클릭하면 된다.


 

메소드 필드 만들기

 

 

조금 전에는 getter and setter를 잘못 선택해서 너무나 많은 메소드가 만들어졌다.

 

 


 

 

 

getter와 setter 만들기

 

이 중에서 우리가 필요한 것은 getter이므로 이것만 선택한다.

 

 

 

 

 

 

 

 

 

 

이제 StudentScore 클래스는 다 만들어졌고 메인 클래스로 와서 만들어보자!


 

 

 

2) 메인 클래스로 해당 내용 만들기

 

 

그런 다음 반복되는 부분을 for문으로 감싸서 반복시킬 것이다.


 

 

 

 

 

 

반복되는 부분은 i로 바꾸되 1번이 되어야 하므로 i에 1을 더해주었다. 그런 다음에 출력문을 작성한다.


 

 

 

 

마지막 부분은 영상이 잘려서 어떤 내용인지 확실히는 모르겠다. 이건 객체 배열로 담은 것들을 하나씩 불러와서 출력하는 것 같다.


 

 

 

 

학습을 마치고 

객체 배열 예제 문제가 몇 개 더 남아있지만 기초 학습은 여기서 마치고 다음 포스트에서 좀더 어려운 예제들을 풀어보며 이 단원 학습을 이어가볼 것이다.

정말 어렵다고 생각했는데 배열을 공부한 후에는 클래스도 OOP도 객체 배열도 별로 어렵지 않게 느껴진다. 그만큼 내 실력이 향상되었다는 뜻이겠다.