소개하기

Sandbox

커스텀 접근자(게터, 세터)

대부분의 프로퍼티는 그 프로퍼티의 값을 저장하기 위한 필드인 backing field 라는 필드가 있다.

하지만 원한다면 그때그때 계산할 수도 있다. 이를 온더고(on the go) 프로퍼티라고 한다

커스텀 게터가 그 기능을 제공한다

class Rectangle(val height: Int, val width: Int) {
  val isSquare: Boolean
    get() {
      return height == width
    }
    // 혹은 get() = hegiht == width
}

간단한 로직인 경우 변수가 아니라 그냥 fun getIsSquare 처럼 함수 하나를 만들고 싶을 수도 있다.

물론 가능하고 성능이나 구현 상의 차이점은 없다. 단순히 가독성 차이일 뿐이다.

프로퍼티를 사용해야 하는 조건은 다음과 같다