728x90
package lazyinit
fun main() {
val obj = TestClass1()
println("obj.a1 = ${obj.a1}")
println("obj.a2 = ${obj.a2}")
obj.testMethod1()
println("obj.a3 = ${obj.a3}")
println("obj.a4 = ${obj.a4}")
}
class TestClass1 {
var a1:Int = 100
var a2:Int
// 선언시 초기화를 하지 않아도 됨
// primitive 타입은 지원 X
// val 선언 x
lateinit var a3:String
//4를 사용을 할때 초기화
val a4:String by lazy {
println("a4 init")
"문자열2"
}
init {
a2 = 200
}
fun testMethod1() {
if (::a3.isInitialized == false) {
a3 = "문자열"
}
println("a3 = ${a3}")
}
}
728x90
'언어 > Kotlin' 카테고리의 다른 글
코틀린 DataClass (0) | 2022.05.25 |
---|---|
코틀린 Companion (0) | 2022.05.24 |
코틀린 property (0) | 2022.05.24 |
코틀린 상속 (0) | 2022.05.24 |
코틀린 생성자 (0) | 2022.05.24 |