- 사용자정의 타입, 클래스
사용자정의 타입(user-defined type)은 기본자료형 외에 프로그래머가 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것을 말한다. 자바와 같은 객체지향언어에서는 클래스가 곧 사용자 정의 타입이다.
int hour; // 시간을 표현하기 위한 변수
int minute; // 분을 표현하기 위한 변수
float second; // 초를 표현하기 위한 변수(1/100초까지 표현하기 위해 float)
만일 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];
// But, 배열로 하면 시, 분, 초가 서로 분리되어 있기에 올바르지 않은 데이터 될 가능성 有
일반적인 선언이나 배열을 사용하면 매우 번거롭고 정확한 데이터를 보장하지 못하지만, 사용자정의 타입인 클래스를 사용하면 시, 분, 초가 하나의 단위로 묶이기에 다른 시간 데이터와 섞이지 않는다.
/* 사용자정의 타입, 클래스로 처리 */
class Time {
int hour;
int minute;
float second;
} // 시, 분, 초가 하나의 단위로 묶여서 다루어지기에 데이터가 섞일 일이 없음
비객체지향적 코드 | 객체지향적 코드 |
int hour1, hour2, hour3; int minute1, minute2, minute3; float second1, second2, second3; |
Time t1 = new Time(); Time t2 = new Time(); Time t3 = new Time(); |
int[] hour = new int[3]; int[] minute = new int[3]; float[] second = new float[3]; |
Time[] t = new Time[3]; t[0] = new Time(); t[1] = new Time(); t[2] = new Time(); |
참고문헌 : 남궁성(2016), Java의 정석, 도우출판