[kotlin] 코틀린 object 선언의 동반 객체 활용법

코틀린에서 object 선언은 싱글턴 인스턴스를 쉽게 생성할 수 있는 강력한 기능입니다. 이 object 선언은 클래스를 선언하고 동시에 클래스의 단일 인스턴스를 생성합니다. 또한, object 선언을 사용하여 동반 객체(companion object)를 정의할 수 있습니다.

동반 객체란?

동반 객체는 클래스 내부에 정의되며 해당 클래스의 인스턴스와 관계되는 메소드나 변수를 포함할 수 있습니다. 또한, 클래스의 인스턴스를 생성하지 않고 바로 동반 객체를 통해 메소드나 변수에 접근할 수 있습니다.

동반 객체의 활용

아래의 예시 코드를 통해 코틀린에서 동반 객체를 어떻게 활용하는지 살펴보겠습니다.

class User private constructor(val name: String) {
    companion object {
        fun create(name: String): User {
            return User(name)
        }
    }
}

fun main() {
    val user = User.create("Alice")
    println(user.name) // "Alice" 출력
}

위의 코드에서 User 클래스 내부에 create 메소드를 동반 객체로 선언했습니다. 이렇게 함으로써 create 메소드를 통해 User 클래스의 인스턴스를 생성할 수 있으며, 해당 메소드는 클래스 외부에서도 직접 접근할 수 있습니다.

동반 객체는 팩토리 메소드나 다른 생성 패턴을 구현할 때 유용하게 활용될 수 있습니다.

정리

코틀린의 object 선언과 동반 객체는 코드를 더 간결하고 유연하게 작성할 수 있도록 도와줍니다. 클래스의 인스턴스와 관계된 메소드나 변수를 정의할 때 동반 객체를 적극적으로 활용해 보세요.