데이터 클래스는 data 키워드를 선언하여 자주 사용하는 데이터를 캡슐화 해준다.
보통 데이터 클래스를 VO 클래스라고 지칭하기도 한다.
equals(), hashCode(), toString() 등의 메서드가 있다.
->나중에 더 자세하게 다뤄보기로 하겠습니다. :)
data 키워드를 사용하여 data 클래스를 이용하면 객체의 데이터 비교할 때 훨씬 편리하다.
데이터 클래스는 데이터를 다루는 데 편리한 기능을 제공하는 것이 주목적이며, 주 생성자에 val,var 키워드로 매개변수를 선언하여 클래스의 멤버 변수로 활용하는 것이 일반적이다.
equals() 함수를 이용하여 변수의 데이터 값을 비교 할 수 있으며,
->equals() 함수는 주생성자에서 선언한 데이터들만 비교한다.
data class DataClass (val name : String, val email : String, val age : Int) {
lateinit var address : String
constructor(name: String,email: String,age: Int,address : String ):
this(name, email, age) {
this.address = address
}
}
fun main() {
val obj1 = DataClass("crm", "tistory.com", 10, "서울")
val obj2 = DataClass("crm", "tistory.com", 10,"부산")
println("obj1.equals(obj2) : ${obj1.equals(obj2)}" )
}
=> 출력값은 true
obj1과 obj 를 비교 했을 때 마지막 지역명칭이 다르지만 출력값은 true가 나온다. 이유는 위에 언급했듯
equals() 함수는 주생성자에서 선언한 데이터들만 비교하기 때문에 참인 결과가 나온것이다.
즉 데이터 클래스의 equals()함수는 주 생성자의 멤버 변수가 같은지만 비교하는것이다.
부족한 설명이나 틀린 부분이 있다면 언제든 피드백 주세유~

'코틀린 > 개념' 카테고리의 다른 글
[Kotlin] 클래스의 종류(3) - 캠피니언 클래스 (0) | 2024.03.01 |
---|---|
[Kotlin] 클래스의 종류(2) - 오브젝트 클래스 (0) | 2024.03.01 |
[Kotlin] 접근 제한자 (0) | 2024.02.27 |
[Kotlin] 상속 (0) | 2024.02.26 |
[Kotlin] 변수 (0) | 2024.02.19 |