import java.time.LocalDate

class Calculator {
    fun add(a: Int, b: Int): Int {
        return a + b
    }

    fun div(a: Int, b: Int): Int {
      //  assert(b != 0) { "Division by Zero" }
        return a / b
    }

    fun sub(a: Int, b: Int): Int {
        return a - b
    }

    fun mul(a: Int, b: Int): Int {
        return a * b
    }

}

data class PersonX(val firstName:String,val lastName:String){
    var sex:String="F"
    var birthDay: LocalDate =LocalDate.now();
}
enum class Direction{NORTH,SOUTH,EAST,WEST}
class Car(val brand:String) {
    fun drive() = accelerate()
    fun drive(direction: Direction):String{
        println("drive to $direction")
        return direction.toString()
    }

    private fun accelerate() = println("$brand going faster...")

}
class Plane {
    fun drive() = accelerate()
    private fun accelerate() = "going faster"
}

object MockObj {
    fun add(a: Int, b: Int) = a + b
}

class MockCls {
    var property:Int=1
    fun sum(a: Int, b: Int) = a + b
    fun sub(a: Int, b: Int): Unit {
        println(a - b)
    }
}
interface ClsWithManyMany {
    fun manyMany(vararg x: Any): Int
}

data class Obj(val value: Int)
class Ext {
    fun Obj.extensionFunc() = value + 5
}



