개발/Kotlin
class와 data class의 차이
룬아님
2019. 11. 13. 14:27
class Todo(var todoInfo: String, var className: String, var dueDate: Date, var isCompleted: Boolean, var isNoDueDate: Boolean)
data class Todo(var todoInfo: String, var className: String, var dueDate: Date, var isCompleted: Boolean, var isNoDueDate: Boolean)
앞에 data 키워드만 붙인것으로 어떤 차이가 있을까?
java에서 클래스를 사용하여 toString을 사용하면 주소값이 나오기 때문에 toString을 override해주거나 equals 혹은 hashCode등을 직접 구현하는 경우가 있었다.
kotlin에서는 data class를 사용하면
- equals()
- hashCode()
- toString() (property 순서대로 출력, class 내에 지역변수는 출력 x)
- copy()
자동으로 생성되기 때문에 커스텀한 구현이 필요하지 않다면 따로 구현이 필요없이 사용이 가능하다.
물론 override를 통하여 직접 구현할 수 있으며 그때에는 직접 구현된 코드로 실행된다.
반응형