// 코트린의 프로퍼티
var name: String? = null
//자바의 필드
String name = null;
// getter, setter
var name: String? = null
get() = field?.toUpperCase()
set(value) {
if(!value.isNullOrBlank()) {
field = value
}
}
위 코드에서 setter 에 field를 사용한 이유와 백킹필드란?
모든 프로퍼티는 캡슐화가 디폴트
var date: Date
get() = Date(millis)
set(value) {
millis = value.time
}
프로퍼티는 필드가 필요 없음
open class Supercomputer {
open val theAnswer: Long = 42
}
class AppleComputer: Supercomputer() {
override val theAnswer: Long = 1_800_275_2273
}
by lazy를 사용하여 프로퍼티를 위임하는 것을 보여주는 예시로 코틀린의 프로퍼티 위임 기능을 사용하여, 해당 프로퍼티가 처음 접근될 때에만 초기화되도록 할 수 있습니다.
val db: DataBase by lazy { connectToDb() }