Java 객체 배열 생성하기: 단계별 완벽 가이드
객체 배열이란?
Java에서 객체 배열은 int나 String 같은 원시 값이 아닌 클래스 인스턴스에 대한 참조를 보관하는 컬렉션입니다. 배열의 각 요소는 다른 곳에서 생성된 객체를 가리키는 참조(메모리 주소)를 저장합니다.
문법:
ClassName[] arrayName = new ClassName[arrayLength];
단계별 예제
아래는 Account 객체 배열을 선언, 인스턴스화, 사용하는 최소 작동 예제입니다.
class ObjectArray {
public static void main(String[] args) {
// Account 참조 2개를 담을 배열 선언
Account[] accounts = new Account[2];
// Account 객체 생성해 배열 슬롯에 할당
accounts[0] = new Account();
accounts[1] = new Account();
// 계정에 데이터 채우기
accounts[0].setData(1, 2);
accounts[1].setData(3, 4);
// 각 Account에 저장된 데이터 표시
System.out.println("배열 요소 0");
accounts[0].showData();
System.out.println("배열 요소 1");
accounts[1].showData();
}
}
class Account {
private int a;
private int b;
public void setData(int c, int d) {
a = c;
b = d;
}
public void showData() {
System.out.println("Value of a = " + a);
System.out.println("Value of b = " + b);
}
}
실행하면 다음 출력 확인:
배열 요소 0
Value of a = 1
Value of b = 2
배열 요소 1
Value of a = 3
Value of b = 4
자주 하는 실수
1. NullPointerException: 각 배열 요소를 인스턴스화하지 않으면(예: accounts[0] = new Account();) setData나 showData 접근 시 NullPointerException 발생.
2. IndexOutOfBoundsException: 배열 길이는 생성 시 고정. 선언된 길이 넘어 할당 시도 시 이 예외 발생.
배열 시각화
다음 다이어그램은 Account 참조 2개짜리 배열의 메모리 레이아웃을 보여줍니다.

객체 생성 후 다이어그램:

더 자세한 개념은 Java Object Class Tutorial 참조.