KOTLIN

[KOTLIN] DATA CLASS

집한구석 2022. 5. 7. 18:08
728x90

Data Class (데이터 클래스)

  • 자바에서 자바빈 패턴을 자동으로 생성해주는 클래스라 이해함
  • Data Class 때문에 Lombok을 사용 안해도 되서 좋은 듯 

Data Class 특징

  • 슈퍼 클래스를 가질 수 없음 
  • 주 생성자에 기본 파라미터가 1개 이상 존재해야하며, val or var로 선언해야함
  • abstract / open / sealed / inner 키워드 사용 불가

Data Class에서 제공하는 것

  • hashCode() : 해시값 계산시 사용
  • copy() : 객체 복사
  • equals() : 데이터의 값 비교
  • toString() : 데이터를 문자열로 쉽게 알아보고 싶을 때 사용
  • componentsN() : 구조 분해 기능

Data Class 사용 예시

data class Member (
    val name: String,
    var age: Int,
    var address: String
)

fun main() {
    val tom = Member("톰", 20, "안양")
    val sameTom = Member("톰", 20, "안양")
    val kevin = Member("케빈", 20, "안양")

    //Member(name=톰, age=20, address=안양) 출력
    println(tom)
    //true
    println(tom == sameTom)
    //false
    println(tom === sameTom)
    //false
    println(tom == kevin)
}
  • toString() 메소드를 통해서 생성한 객체 출력시 값들이 알아서 출력
  • == 연산자로는 객체가 동일한 값을 담고 있는지 비교, === 연산자 일 경우 메모리상 같은 객체인지 비교

그외 부가적인 부분은 추후 정리..

'KOTLIN' 카테고리의 다른 글

[KOTLIN] 확장함수  (0) 2022.05.22
[KOTLIN] Scope 함수  (0) 2022.05.18
[KOTLIN] 컬렉션  (0) 2022.05.18
[KOTLIN] OPEN 키워드  (0) 2022.05.10
[KOTLIN] OBJECT 키워드  (0) 2022.05.07