Kotlin의 class에 대하여 알아보기 4
오늘은 코틀린에서 데이터 클래스와 NESTED 클래스, NESTED 데이터 클래스에 대하여 알아보겠습니다.
데이터 클래스
데이터들만 가지는 클래스입니다.
자바에서는 생성자, getter/setter, equals, tostring 들을 직접 만들었지만, 코틀린에서는 데이터 클래스를 도입하여 자동으로 위와 같은 것들이 만들어집니다.
중괄호대신 소괄호가 사용됩니다.
data class test(
var number : Int,
var name : String,
var code : String
)
fun main(args: Array<String>) {
var real = test(1,"name","kotlin")
println(real.code)
var real2 = real.copy()
println(real2.toString())
real2.name = "name2"
println(real2.toString())
println(real2.name.equals(real.name))
}
위 예시는 테스트라는 데이터 클래스를 만들고, 이 데이터 클래스에서 객체를 생성하여 getter/setter, 복사, 출력, 비교를 하는 코드입니다.
NESTED 클래스
중첨 클래스라는 뜻으로, 클래스안에 클래스가 있다는 겁니다.
class test{
var name : String? = null
var code : Code? = null
class Code{
var java : String? = null
var kotlin : String? = null
}
}
fun main(args: Array<String>) {
var real = test()
real.name = "namw"
var code = test.Code()
code.java = "system.out.plrintln"
code.kotlin = "println"
real.code = code
println(real.code?.java)
println(real.code?.kotlin)
}
이와 같이 중첩하여 구성할 수 있습니다.
NESTED 데이터 클래스
데이터 클래스를 NESTED로 만들 수 있습니다.
이렇게 되면, 메인에서 간결하게 데이터를 묶어서 넣을 수 있습니다.
data class test(
var number : Int,
var str : Str
){data class Str(
var name : String,
var code : String
)
}
fun main(args: Array<String>) {
var real = test(1,test.Str("kotlin","println"))
println(real.toString())
}
Written on May 11, 2018