fun main(args:Array<String>){
val a = General("Han",100)
println(a == General("Han",100))
println(a.hashCode())
println(a)
val b = Data("Kim",200)
println(b == Data("Kim",200))
println(b.hashCode())
println(b)
println(b.copy())
println(b.copy("Yeop"))
println(b.copy(id = 300))
}
class General(val name : String, val id : Int)
// 일반 클래스
data class Data(val name : String, val id : Int)
// 데이터 클래스
일반 클래스로 출력한 1,2,3 줄은 기능이 제대로 동작하지 않는것을 볼 수 있고
그 이외의 출력결과들은 기능이 잘 동작하는 것을 확인할 수 있다.
fun main(args:Array<String>){
val list = listOf(Data("Han",100),
Data("Kim",200))
for((a,b) in list){
println("$a , $b")
} // 내부적으로 component() 함수가 적용되어 순서대로 값을 불러옴
}
class General(val name : String, val id : Int)
// 일반 클래스
data class Data(val name : String, val id : Int)
// 데이터 클래스
또한 리스트에 담긴 데이터 클래스의 컴포넌트들을 하나씩 출력할 수 있다.
Enum class
열거형 클래스로, 상태를 구분하기 위하여 사용하는 클래스이다.
fun main(args:Array<String>) {
var state = State.SING
println(state)
state = State.SLEEP
println(state.isSleeping())
state = State.EAT
println(state.message)
}
enum class State(val message : String) {
SING("노래"),
EAT("먹기"),
SLEEP("잠잠");// 함수를 사용하기 위해 세미콜론 사용
fun isSleeping() = this == State.SLEEP
// 잠을 자고 있는지 판별하는 함수
}