lateinit & lazy
lateinit은 late(늦게, 지연) + init(initialize: 초기 값을 설정하다)를 합친 말이다.
즉, '초기값 설정을 나중에 한다'라는 뜻을 가진다.
클래스에서 선언한 변수를 property(프라퍼티)라고 했다.
변수를 선언하면 기본적으로 초기화 해야 한다.
그런데 만약 객체의 정보가 나중에 나오면 선언할 때 초기화가 어려울 수 있다.
또는 변수를 사용하는 시점에 초기화를 해야 하는 경우도 있다.
이런 경우에 lateinit을 사용할 수 있다.
lateinit을 사용할 때 주의할 사항은 다음과 같다.
lateinit은 var 변수에서만 사용할 수 있다.
property에 대한 getter, setter는 사용할 수 없다.
늦은 초기화의 예를 만들어 본다.
main함수에서 클래스 Coding을 사용하여 language객체를 만들고
그 다음 name을 초기화해서 값(Kotlin)을 넣는다.
lazy를 사용한 늦은 초기화
lateinit 늦은 초기화는 var 변수만 사용할 수 있는데 val 변수에 늦은 초기화를 적용하려면 lazy를 사용한다.
사용할 때의 표현은 다음과 같다.
by lazy { 람다 }
by 는 '위임' 선언을 하는 키워드이다.
위임은 class나 property에 선언하여 위임 받은 객체가 작업을 대신하도록 맡기는 기능이다.
'프로그래밍 언어 > 코틀린_쌩초보를 위한 기초' 카테고리의 다른 글
쌩초보를 위한 기초_29_Class 종류 (0) | 2020.03.31 |
---|---|
쌩초보를 위한 기초_28_Abstract Class & Interface (0) | 2020.03.30 |
쌩초보를 위한 기초_26_Visibility Modifier_가시성 제한자 (0) | 2020.03.28 |
쌩초보를 위한 기초_25_참조 키워드 super & this (0) | 2020.03.28 |
쌩초보를 위한 기초_24_Inheritance_상속 (0) | 2020.03.27 |