프로퍼티의 접근자를 직접 작성하는 방법
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 선언
}
위 코드는 직사각형 클래스를 정의하면서 자신이 직사각형인지 알려주는 기능이다.
직사각형이 정사각형인지를 별도의 필드에 저장할 필요가 없다. 사각형의 너비와 높이가
같은지 검사하면 정사각형 여부를 그때그때 알 수 있다.
사용자가 프로퍼티에 접근할 때 마다 게터가 프로퍼티 값을 매번 다시 계산한다.
커스텀 접근자와 해당 기능을 함수로 만드는 방식은 구현이나 성능면에서 차이는 없다.
차이가 나는 부분은 가독성뿐이다.