// 코트린의 프로퍼티
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
    }

프로퍼티는 필드가 필요 없음

  1. 코틀린은 인터페이스에서 프로퍼티를 정의 할 수 있음
open class Supercomputer {
    open val theAnswer: Long = 42
}

class AppleComputer: Supercomputer() {
    override val theAnswer: Long = 1_800_275_2273
}
  1. 프로퍼티를 위임할 수도 있음

by lazy를 사용하여 프로퍼티를 위임하는 것을 보여주는 예시로 코틀린의 프로퍼티 위임 기능을 사용하여, 해당 프로퍼티가 처음 접근될 때에만 초기화되도록 할 수 있습니다.

val db: DataBase by lazy { connectToDb() }