Data Class 와 Enum Class > IT 기술백서

[code]

fun main() {

val a = General(“봉이”, 123)

    

    println(a == General(“봉이”, 123))

    println(a.hashCode())

    println(a)

    

    println()

    

    val b = Data(“봉이”, 123)

    

    println(b == Data(“봉이”, 123))

    println(b.hashCode())

    println(b)

    println(b.copy())

    println(b.copy(“똘이”))

    println(b.copy(id=202))

    

    println()

    

    val list = listOf(Data(“봄이”, 111),

                     Data(“콩이”, 222),

                     Data(“모찌”, 333))

    

    // a : compoment1, b: component2

    for ((a, b) in list) {

        println(“${a}, ${b}”)

    }

    

    println()

    

    var state = State.SING

    println(state)

    

    state = State.SLEEP

    println(state.isSleeping())

    

    state = State.EAT

    println(state.message)

}

/**

 일반클래스

**/

class General(val name: String, val id: Int)

/**

 Data Class 는 아래 함수를 자동으로 만들어 준다

   : 배열이나 리스트등에 데이터클래스가 담겨있을때 내부적으로 이 함수들이 필요하다

   equals() : 값 비교 함수

   hashCode() : 고유코드 반환 함수

   toString() : 속성을 문자열로 만들어주는 함수

   copy() : 객체복사 함수

   componentX() : 속성을 순서대로 반환하는 함수

**/

data class Data(val name: String, val id: Int)

/**

 Enum 클래스

 contructor 의 변수는 Enum 의 값을 얻어오는 변수이다

**/

enum class State(val message: String) {

    SING(“노래를 부릅니다”),

    EAT(“밥을 먹습니다”),

    SLEEP(“잠을 잡니다”); // 아래에 함수가 있으면 세미콜론(;) 을 붙인다

    

    fun isSleeping() = this == State.SLEEP

}

[/code]

 

결과

[code]

false

1510467688

General@5a07e868

true

48088656

Data(name=봉이, id=123)

Data(name=봉이, id=123)

Data(name=똘이, id=123)

Data(name=봉이, id=202)

봄이, 111

콩이, 222

모찌, 333

SING

true

밥을 먹습니다

[/code]

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤