본문 바로가기
언어/Kotlin

코틀린 연산자 오버로딩

by 김어찐 2022. 5. 25.
728x90
package operatoroverloading

fun main() {
    val num1 = 100
    val num2 = 200

    val a1 = num1+num2
    println("a1 = ${a1}")

    val a2 = num1.plus(num2)
    println("a2 = ${a2}")

    val obj1 = TestClass(100, 200)
    val obj2 = TestClass(1000, 2000)

    val obj3 = obj1 + obj2
    println("obj3.a1 = ${obj3.a1}")
    println("obj3.a2 = ${obj3.a2}")

    val obj4 = obj1 - obj2
    println("obj3.a1 = ${obj4.a1}")
    println("obj3.a2 = ${obj4.a2}")

}

class TestClass(var a1:Int, var a2:Int){
    operator fun plus(target:TestClass): TestClass{
        val r1 = this.a1 + target.a1
        val r2 = this.a2 + target.a2
        val result = TestClass(r1,r2)
        return result
    }

    operator fun minus(target: TestClass) :TestClass{
        val r1 = this.a1 - target.a1
        val r2 = this.a2 - target.a2
        val result = TestClass(r1,r2)
        return result
    }
}
728x90

'언어 > Kotlin' 카테고리의 다른 글

코틀린 확장함수  (0) 2022.05.26
코틀린 함수형 프로그래밍  (0) 2022.05.25
코틀린 열거형  (0) 2022.05.25
코틀린 캐스팅  (0) 2022.05.25
코틀린 null 처리  (0) 2022.05.25