본문 바로가기

코틀린/개념

[Kotlin] 클래스의 종류(1) - 데이터 클래스

데이터 클래스는 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