많은 수의 객체를 다뤄야할 경우 배열로 다루면 편리하다.
이를 '객체 배열'이라고 한다. 그렇다고 객체 배열 안에 객체가 저장되는 것은 아니고, 객체의 주소가 저장된다.
Tv[] tvArr = new Tv[3]; //참조변수 배열을 생성
//객체를 생성해서 배열의 각 요소에 저장
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();
//배열의 초기화 블럭을 사용하여 한 줄로 요약
Tv[] tvArr = {new Tv(), new Tv(), new Tv() };
객체 배열도 같은 타입의 객체만 저장할 수 있으므로 주의해야한다.
여러종류의 객체를 하나의 배열에 저장하고 싶다면 '다형성'을 배우고 나면, 하나의 배열로 여러 종류의 객체를 다룰 수 있게 된다.
객체를 생성하기 위한 틀
속성과 기능으로 정의되어있다.
int hour; //시간을 표현하기 위한 변수
int minute; //분을 표현하기 위한 변수
float second; //초를 표현하기 위한 변수
만일 3개의 시간을 다뤄야 한다면 다음과 같이 해야 할 것이다.
int hour1, hour2, hour3; //시간을 표현하기 위한 변수
int minute1, minute2, minute3; //분을 표현하기 위한 변수
float second1, second2, second3; //초를 표현하기 위한 변수
배열로 처리하면 다뤄야하는 시간 데이터의 개수가 늘어나더라도 배열의 크기만 변경해주면 되므로, 변수를 매번 선언해줘야 하는 불편함과 복잡함은 없어진다.
하지만 하나의 시간을 구성하는 시, 분, 초가 서로 분리되어 있기 때문에 프로그램 수행과정에서 올바르지 않은 데이터가 될 가능성이 있다.
int[] hour = new int[3];
int[] minute = new int[3];
float[] second = new float[3];
사용자정의 타입, 즉 클래스로 정의한 경우
class Time()
{
int hour;
int minute;
float second;
}
위의 코드는 세 변수를 멤버변수로 갖는 Time 클래스를 정의한 것이다.