룬아님의 취중코딩

class와 data class의 차이 본문

개발/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를 통하여 직접 구현할 수 있으며 그때에는 직접 구현된 코드로 실행된다.

반응형
Comments