프로퍼티의 접근자를 직접 작성하는 방법

class Rectangle(val height: Int, val width: Int) {
    val isSquare: Boolean
        get() { // 프로퍼티 getter 선언
            return height == width
        }
}

/** 이렇게 사용 가능 **/
class Rectangle(val height: Int, val width: Int) {
    val isSquare: Boolean
        get() = height == width // 프로퍼티 getter 선언
}

위 코드는 직사각형 클래스를 정의하면서 자신이 직사각형인지 알려주는 기능이다.

직사각형이 정사각형인지를 별도의 필드에 저장할 필요가 없다. 사각형의 너비와 높이가

같은지 검사하면 정사각형 여부를 그때그때 알 수 있다.

2022 12/10 추가내용

사용자가 프로퍼티에 접근할 때 마다 게터가 프로퍼티 값을 매번 다시 계산한다.

커스텀 접근자와 해당 기능을 함수로 만드는 방식은 구현이나 성능면에서 차이는 없다.

차이가 나는 부분은 가독성뿐이다.