초기화 지연을 사용하는 이유 ?
보통 클래스에서 변수를 초기화하면, 클래스 생성 시 해당 변수도 함께 생성되며 초기화된다. 그렇게 되면 클래스 객체를 생성할 때마다 해당 변수도 함께 초기화되기 때문에 바로 사용할 수 있다는 장점이 있다.
하지만 해당 변수를 바로 사용하지 않거나 꼭 사용하는 경우가 아니라면 클래스를 생성할 때마다 변수를 초기화하기 때문에 메모리나 소프트웨어의 실행 시간 측면에서 손해를 많이 보게 될 것이다.
정리하면 지연 초기화는 해당 변수가 필요한 순간까지 초기화를 최대한 미루어서 메모리나 실행 시간에서 이득을 보기 위해 사용한다.
lateinit var text:String // 타입을 반드시 지정해줘야함
val test : Int by lazy{ // lateinit var와 달리 선언을 할 때 초기화가 되어있어야함
println("초기화중입니다.")
100 // 마지막줄 return
}
fun main(){
text="안녕하세요" // lateinit var는 선언 후 나중에 초기화가 가능
println("메인함수 실행")
println("초기화 한 값 :$test") // test 초기화
println("두번째 출력 :$test")
// 출력결과
// 메인함수 실행
// 초기화중입니다.
// 초기화 한 값 :100
// 두번째 출력 :100
}
'안드로이드 프로그래밍 > 문법정리' 카테고리의 다른 글
[kotlin] 코틀린 enum class (열거 클래스) (0) | 2024.05.28 |
---|---|
[kotlin] Data class, Sealed class (0) | 2023.08.14 |
[kotlin] 코틀린 스코프 함수 let, with, run, apply, also 차이 비교 정리 (0) | 2023.08.10 |
[kotlin] 접근 제한자(Visibility Modifiers) (0) | 2023.01.27 |
[kotlin] 생성자 (0) | 2023.01.26 |