현재 계속 객체에 관해서 이야기를 들이고 있습니다. 그럼 이제 또 객체를 관리 하는 다른 방법을 이야기를 하려고 합니다. class를 선언하고 객체를 만들었을 때 만들 때마다 참조 자료형 선언하고 하나의 변수에 하나의 객체를 한다면 객체의 개수가 많아진다면 어떻게 될까요? 당연히 제가 생각해도 효율적이지 못하고 힘들 것이라고 예상합니다. 그럼 이번 글을 읽는 다면 해답을 찾으실 수 있습니다.
이전 기본 자료형에서도 했었던 바로 배열을 활용한다면 하나의 변수의 여러 개의 객체를 담을 수 있습니다. 그럼 이번 글에서는 객체 배열 또는 class 배열을 알아 보겠습니다. 이번 걸음도 끝까지 읽어주세요.
이번 걸음에서는 class 배열을 선언하는 방법 그리고 사용하는 방법과 기본 자료형 배열과의 차이점은 무엇이고 어떻게 사용을 해야 하고 꼭 이해를 하기를 바라는 부분에 대해서 이번 걸음에서 이야기를 하려고 합니다. 마지막까지 꼭 읽어주시기를 부탁 드립니다.
class 배열 이란?
class 배열이란 말 그대로 참조 자료형을 배열로 만든 것을 말합니다. 그래서 이 배열에는 참조 자료형 즉 배열 앞에 나오는 자료형만 들어갈 수 있게 됩니다.
예) A[] a = new A[5];
A참조 자료형 배열 5개가 생성이 된것입니다.
class 배열 예제
class A{
}
class B{
}
A[] a = new A[5];
B[] b = new B[5];
위에 소스처럼 class 배열을 생성을 하면 됩니다. 여기서 중요한 것은 배열 선언 후에 바로 사용이 가능하냐 입니다. 제가 이전 걸음에서 말씀을 드렸던 것이 있습니다. 객체는 무조건 new 생성자() 형태로만 생성이 됩니다.
이 말을 잘 기억을 하신다면 위에 있는 class 배열은 당연히 객체가 존재 하지 않고 객체를 담을 수 있는 그릇만 만든 것이라고 생각을 하시면 됩니다.
객체를 가지려면 class 배열에 인덱스로 접근하여 new 생성자()를 하면 그 인덱스에는 객체가 존재를 하게 됩니다.
//위 소스를 연결을 해서 구현을 합니다.
a[0] = new A();
a[1] = new A();
b[0] = new B();
//이렇게 new 생성자()가 되어야 객체가 존재 한다고 할 수 있습니다.
class 배열과 기본 자료형 배열의 차이
기본 자료형 배열과 class 배열은 딱 하나의 차이가 존재합니다. 바로 class 배열은 객체가 생성된 것이 배열 안에 채워져야 하고 기본 자료형 배열은 바로 사용이 가능 하기 때문에 객체 유무를 고민을 하지 않고 사용을 하시면 됩니다.