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 |