클래스 배열

김지원·2022년 6월 3일
0

Java

목록 보기
28/38

클래스 배열

객체를 여러개 선언해야 하는 경우
배열 타입으로 한번에 선언 후 사용한다.

내차클래스 엄마차 클래스 아빠차클래스...
저장공간이 여러개네? => 배열!
객체가 여러개일때 그 객체들을 배열에 담아보자.

클래스 배열은 2차원 배열이다.

객체는 필드의 주소값을 가지고 있다.
그 주소값을 가진 객체를 담는 배열이다.
한번 들어가 봤더니 주소가 존재한다. 즉 2차원배열이다.

클래스 배열 선언

  1. 자동초기화
클래스명[] 배열명 = new 클래스명[길이]; 
클래스명[] 배열명 = {
			new 클래스명( ),
            new 클래스명( ),
            ....
}

new 클래스명( ),
0번째방 객체화, 1번째방 객체화 즉 값이 들어갔다.
new 생성자 하게 되면 Ram에 클래스 영역에 접근할 수 있도록 heap메모리 영역에 생긴다.

클래스 배열 사용

배열명[index].변수명
배열명[index].메서드명( )

< example >

Animal class를 배열을 통해서 각각의 동물의 정보를 출력해보자.

toString overriding
void show() {}
show(동물의 정보를 보여주는) 라는 메서드를 만들어서 해도 되지만 toString훨씬 편하다.
정보를 보여주기 위해 toString재정의한다.

( return : 돌려줘야지 사용하는 부분에서 값이 나온다. )


main클래스로 가서 출력하자.

Animal[] arAni = new Animal[3];
Animal 타입의 3칸짜리 배열이 heap메모리 영역에 만들어졌고
시작주소를 배열명이 arAni라는 애가 가지고 있다.

arAni[i] = new Animal(); : 객체화해줘야한다!
항상 이렇게 초기화해야한다. new를 했기 때문에 animal 공간이 heap메모리에 할당된다.

arAni[i].name = s.next();
해석 : arAni의 i번쩨째 방에 있는 name에 입력받은값을 바로 넣자.

< 출력결과 >

toString을 오버라이딩 했으니 객체명을 출력했더니 원하는 값이 나왔다.


그렇다면 생성자를 통해서 초기화해서 출력은 어떻게 할까...


먼저 main에서 저장공간을 만들어준다.


그런다음 입력받은 값을 저장공간에 넣고 배열로 한번에 출력한다.

생성자를 통해서 호출해서 초기화 할 수 있어야 하고,
기본생성자에서 하나씩 마침표로 접근도 할 수도 있어야 한다.

0개의 댓글

관련 채용 정보