코린이의 소소한 공부노트

객체 배열 본문

Java

객체 배열

무지맘 2022. 3. 1. 00:56

객체가 생성되면 메모리 어느 공간에 객체가 자리 잡게 되고, 그곳의 주소를 참조변수에 담아 객체를 사용할 수 있게 된다. 객체 배열은 이런 참조변수의 배열을 말하는 것이다. 물론, 타입은 같아야 한다.

 

사람 객체 3개를 만들어보자. 2가지로 나눠서 생성해보려고 한다.

1. 객체 3개를 각각 생성하는 경우

// 1)-1 3개의 참조변수를 생성한다.
Person p1, p2, p3;

// 1)-2 객체를 생성해 참조변수와 연결시켜준다.
p1 = new Person();
p2 = new Person();
p3 = new Person();

// 2) 귀찮으니까 동시에 한다.
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person();

2. 객체 배열을 이용하는 경우

// 1)-1 길이가 3인 객체 배열을 만든다.
Person[] pArr = new Person[3];

// 1)-2 배열의 각 요소에 생성한 객체를 저장한다.
pArr[0] = new Person();
pArr[1] = new Person();
pArr[2] = new Person();

// 2) 이 또한 귀찮으니 동시에 한다.
Person[] pArr = { new Person(), new Person(), new Person()};

 

이 2가지는 객체 변수와 객체 배열이라는 차이도 있지만, 초기화와 메모리 상에서도 차이가 생긴다.

1. 초기화

  - 변수: 선언 후 초기화를 해줘야 사용이 가능하다.

  - 기본형 배열: 각 기본형의 기본값(int는 0 등)으로 배열의 요소가 자동 초기화된다.

  - 참조형 배열: 기본값인 null로 배열의 요소가 자동 초기화된다.

객체 배열 참조형 배열로, 생성 시 모든 요소가 null로 초기화된다. 이 말은 즉슨 생성된 객체가 없기 때문에 무용지물이라는 뜻이다. 객체 배열 생성 후 꼭 객체를 생성해서 초기화를 해줘야 우리가 원하는 대로 사용할 수 있다.

2. 메모리

객체를 각각 생성하면 참조변수 3개도 따로, 객체도 따로 위치하게 된다. 객체 배열을 이용하면 참조변수는 한 배열에 있기 때문에 연속적인 공간에 위치하게 된다.

 

같은 타입의 객체 여러 개를 다룰 때, 객체 배열을 이용할것이냐 따로 선언을 할 것이냐는 필요에 맞게 정하면 된다.

1) 객체의 개별성이 필요한 경우: 따로 선언

2) 반복문을 이용하는 등 모든 객체에 같은 작업이 필요한 경우: 객체 배열 이용

 

 

'Java' 카테고리의 다른 글

선언 위치에 따른 변수의 종류  (0) 2022.03.03
클래스의 정의  (0) 2022.03.02
클래스, 객체, 인스턴스  (0) 2022.02.20
객체지향 언어의 도입 배경과 특징  (0) 2022.02.20
배열 (5) Arrays클래스  (0) 2022.02.20