[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]