반응형

객체 배열 

객체 배열 == 참조변수 배열

예를 들어서 Tv타입의 참조변수 tv1, tv2 tv3가 있을 때,
이것을 배열로 바꾸면 오른쪽과 같이 Tv[] tvArr = newTv[3];이 된다.

Tv[] tvArr = new Tv[3];	// 길이가 3인 Tv타입의 참조변수 배열

참조변수 3개를 붙여놓은 것이다.
참조변수의 기본값은 null이므로 null로 자동초기화가 된 상태이다.

 //객체를 생성해서 배열의 각 요소에 저장
 tvArr[0] = new Tv();
 tvArr[1] = new Tv();
 tvArr[2] = new Tv();

객체의 배열은, 객체를 담기위한 것이므로,
위의 코드와 같이 객체를 생성해서 각 참조변수에 저장하면 된다.

객체 배열을 만들고, 객체 생성을 해주어야 한다.
객체 배열을 만들었다고 해서 객체가 생성되는 것은 아니다. 
객체 배열은 단지 객체의 주소를 저장 할 참조변수를 생성한 것 뿐이다.

위에 있는 코드 세문장은 배열이기 때문에, 일반 배열에 값을 초기화 하듯이, {}를 이용해서 아래와 같이 간단하게 작성할 수 있다. 

Tv[] tvArr = {new Tv(), new Tv(), new Tv()};

 

이번에는 그림을 통해 살펴보자.

Tv t1 = new Tv();
Tv t2 = new Tv();
Tv t3 = new Tv();

이런 문장들이 있을 때, 이 문장들을 그림으로 그리면 아래와 같이 그릴 수 있다.

각 문장이 실행 될 때마다 Tv객체가 생성되고 생성된 객체의 주소값이 각 참조변수에 저장된다.

 

이번에는객체 배열을 생성하고, 객체를 생성해서 저장하면 어떻게 그림이 그려질까?

Tv[] tvArr = new Tv[3];
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();

위의 그림과 비교해보면, 객체 배열 == 참조변수 배열 이라는 것을 알 수 있다.

앞서 말했듯 객체 배열을 만들고, 객체 생성을 해주어야 한다.
객체 배열을 만들었다고 해서 객체가 생성되는 것은 아니다. 
객체 배열은 단지 객체의 주소를 저장 할 참조변수를 생성한 것 뿐이다.

이것을 유의하자.​

반응형

'JAVA' 카테고리의 다른 글

선언위치 변수 종류  (0) 2022.03.25
클래스의 정의  (0) 2022.03.24
객체의 생성과 사용  (0) 2022.03.24
하나의 파일에 여러 클래스 작성하기  (0) 2022.03.24
클래스와 객체  (0) 2022.03.24