데이터 클래스(Data Class)
데이터 클래스 설명 및 특징
- 데이터 전달을 위한 데이터 클래스로 보통 데이터 전달을 위한 객체를 DTO(Data Transfer Object)라고 부른다. 자바에서는 POJO(Plain Old Java Object)라고 불렸음
- 구현 로직을 가지고 있지 않고 순수한 데이터 객체를 표현한다
- 데이터를 접근하는 게터/세터를 포함한다.
- toString(), equals()등과 같은 데이터 표현 및 비교 메서드 포함한다
- 프로퍼티만 신경 써서 작성하면 나머지는 내부적으로 자동 생성 된다.
데이터 클래스의 조건
- 주 생성자는 최소한 하나의 매개변수를 가진다
- 주 생성자의 모든 매개변수는 val, var로 지정된 프로퍼티여야 한다
- 데이터 클래스는 abstract, open, sealed, inner 키워드를 사용 X
데이터 클래스가 자동 생성하는 메서드
equals()와 hasCode()예
val cus1 = Customer("Tom", "[email protected]")
val cus2 = Customer("Tom", "[email protected]")
...
println(cus1 == cus2) // 동등성 비교
println(cus1.equals(cus2)) //위와 동일
println("${cus1.hashCode()}, ${cus2.hashCode()}")// 고유값도 동일
/* 실행 결과
true
true
-1208413004, -1208413004
*/