언어/코틀린

[Kotlin] Companion object

도넛의용기 2023. 5. 9. 08:10

Companion object는 싱글턴 객체를 이용할 때 사용됩니다.

 

코틀린에서 Companion object는 클래스 내부에 정의되는 싱글턴 객체입니다. 이 객체는 클래스의 인스턴스와는 별개로 존재하며, 클래스 내부에서 정의된 메서드나 프로퍼티에 접근할 수 있습니다.

class MyClass {
    companion object {
        const val CONSTANT_VALUE = "Hello, world!"

        fun myFunction() {
            println("This is a function inside the companion object.")
        }
    }
}



위 코드에서 `companion object`를 사용하여 `MyClass` 내부에 싱글턴 객체를 정의하고 있습니다. 이 객체는 `CONSTANT_VALUE`와 `myFunction()`이라는 두 개의 멤버를 가지고 있습니다.

`CONSTANT_VALUE`는 값을 변경할 수 없는 상수로 선언되어 있으며, `myFunction()`은 단순히 콘솔에 출력하는 함수입니다.

이렇게 정의된 companion object의 멤버들은 클래스 이름을 통해 접근할 수 있습니다.

MyClass.CONSTANT_VALUE // "Hello, world!"

MyClass.myFunction() // "This is a function inside the companion object."



따라서 companion object는 클래스 내부에서 유일하게 사용해야 하는 싱글턴 객체를 생성하고, 이 객체에 대한 메서드나 프로퍼티를 정의할 때 유용하게 사용됩니다.

'언어 > 코틀린' 카테고리의 다른 글

[Kotlin] 생성자  (0) 2023.09.05
[Kotlin] trim()  (0) 2023.05.23
[Kotlin] 코틀린 기초 - 변수, 데이터 타입  (0) 2023.01.17