[java] 배열과 클래스의 관계

송어·2023년 11월 12일

배열(Array)과 클래스(Class)는 데이터를 담는 역할을 한다는 점에서는 같지만 그 구조는 서로 다르다.
배열은 동일한 데이터를 담는 동일한 구조이며, 클래스는 서로 다른 데이터를 담는 이질적인 구조이다.

  • array

배열 & 클래스의 구조

정수정수정수정수정수정수
arr[0]arr[1]arr[2]arr[3]arr[4]arr[5]
int[] arr = new int[6]; // 배열 생성
  • class
문자열문자열정수문자열정수문자열
namedeptagermailyearphoneNum
Student student = new Student(); // 객체 생성

같은 타입의 데이터만 담는 동일한 구조인 Array와는 달리, Class는 서로 다른 타입의 데이터를 담는 이질적인 구조를 가진다.(클래스에 설계)

기본 배열과 객체 배열의 관계

  • 기본 배열 : 같은 타입의 데이터를 여러 개 담음
float[] arr = new float[4]; // 배열 생성
arr[0] = 10.5f; // 같은 타입의 데이터를 여러개 가진다.
arr[1] = 30.22f;
arr[2] = 23.3f;
arr[3] = 33.333f;
  • 객체 배열 : 객체 데이터를 여러 개 담음

Student[] student = new Student[4]; // 객체 배열 생성
student[0] = new Student("홍길동", "컴공", "23", "email1", "2023110", "010-1111-1111"); // 객체 배열 객체 생성 및 초기화(객체가 각각 Heap Memory에 생성됨)
student[1] = new Student("나길동", "전기", "21", "email2", "2023110", "010-1111-2222");
student[2] = new Student("김길동", "상경", "24", "email3", "2023110", "010-1111-3333");
student[3] = new Student("이길동", "영어", "23", "email4", "2023110", "010-1111-4444");


MovieDTO배열을 각각 출력해본 결과 서로 다른 주소 값이 나옴

Heap Memory에 생성된 객체 각각의 주소값이 배열과 연결되어 저장된다.(배열 공간마다 각각 다른 주소값을 가진다는 의미)

0개의 댓글