[kotlin] 연산자 오버로딩의 개념과 사용법
코틀린은 연산자 오버로딩을 지원하여 사용자 정의 클래스에 대해 다양한 연산자를 오버로딩할 수 있습니다. 연산자 오버로딩을 통해 객체 간의 다양한 연산을 사용자 정의할 수 있으며, 이는 코드 가독성과 유지보수성을 높일 수 있습니다.
연산자 오버로딩의 개념
연산자 오버로딩이란 기존에 정의된 연산자에 새로운 의미를 부여하는 것을 의미합니다. 예를 들어, +
연산자를 통해 두 개의 객체를 더하는 연산에서, 사용자 정의 클래스에 대해 +
연산자를 오버로딩하여 원하는 대로 동작하도록 재정의할 수 있습니다.
사용법
코틀린에서 연산자를 오버로딩하려면 해당 연산자에 대한 특정한 함수를 정의해야 합니다. 이때 함수 이름은 정해진 규칙에 따라야 합니다.
예를 들어, +
연산자를 오버로딩하려면 plus
라는 함수를 정의해야 합니다.
다음은 +
연산자를 오버로딩하는 예시입니다.
class Point(val x: Int, val y: Int) {
operator fun plus(other: Point): Point {
return Point(x + other.x, y + other.y)
}
}
fun main() {
val p1 = Point(3, 4)
val p2 = Point(1, 2)
val p3 = p1 + p2 // p1.plus(p2)와 동일
println("(${p3.x}, ${p3.y})") // 출력: (4, 6)
}
위 예시에서 operator
키워드를 사용하여 plus
함수를 정의함으로써 +
연산자를 오버로딩하였습니다.