Extensions as members

Extensions

class Point(var x: Int, var y: Int)

class Size(var width: Int, var height: Int)

class Rect(val point: Point, var size: Size) {
    private fun Size.area(): Int {
        return this.height * this.width
    }

    fun getArea(): Int {
        return size.area()
    }
}

val rect = Rect(Point(3, 4), Size(10, 12))
val area = rect.getArea()
//area is 120

println("area is $area")