안 씀/java-개념

객체 배열

unhyepnhj 2024. 5. 20. 11:25

객체 배열

- 자바에서는 기본 타입 데이터뿐 아니라 객체를 원소로 하는 객체 배열도 만들 수 있음

- 객체에 대한 레퍼런스를 원소로 갖는 배열

5개의 Circle 객체들을 원소로 저장하고 배열에 들어 있는 모든 Circle 객체의 면적을 출력하는 코드


배열 선언 및 생성

 

1. 배열에 대한 레퍼런스 선언

Circle[] c;

- Circle 클래스의 배열에 대한 레퍼런스 변수 c 선언

- 레퍼런스 변수 c를 선언할 뿐 배열을 생성하는 것은 아님 → 배열의 원소 개수를 지정해서는 안 됨

 

2. 레퍼런스 배열 생성

c = new Circle[5];

- 5개의 레퍼런스를 원소로 하는 배열 생성

- 배열의 원소는 객체가 아닌 레퍼런스

- Circle 객체에 대한 레퍼런스 배열이 생성되며, 변수 c가 이를 가리킴

- Circle 객체들은 아직 존재하지 않음

 

3. 객체 생성

for(int i=0; i<c.length; i++){
	c[i] = new Circle(i);	//i번째 Circle 객체 생성
}

- for 문을 이용하여 배열의 크기만큼 Circle 객체를 생성, 배열 c[ ]의 각 레퍼런스에 하나씩 대입

- Circle 객체 배열이 생성됨

Circle 객체 배열의 생성 과정


배열의 원소 객체 접근

- 배열 c의 i번째 객체에 접근하기 위해서 c[i] 레퍼런스를 사용

for(int i=0; i<c.length; i++){
	System.out.print((int)(c[i].getArea())+" ");
    //배열 c에 들어 있는 모든 Circle 객체의 면적을 출력
}

예제 4-6 반지름이 0~4인 Circle 객체 5개를 가지는 배열을 생성하고, 배열에 있는 모든 Circle 객체의 면적을 출력하는 프로그램 작성

 

예제 4-7 예제 4-4의 Book 클래스를 활용하여 객체 2개를 가지는 Book 객체 배열을 만들고 사용자로부터 책의 제목과 저자를 입력받아 배열을 완성하는 프로그램 작성

예제 4-4