Kotlin/포스팅

코틀린 객체 선언

짜집퍼박사(짜박) 2023. 12. 30. 22:35

코틀린에서 "객체 선언"은 싱글톤 패턴을 간단하게 구현할 수 있는 특별한 구조를 제공합니다. 이를 통해 클래스의 인스턴스가 단 하나만 존재하도록 보장할 수 있습니다. 객체 선언은 object 키워드를 사용하여 정의되며, 해당 객체는 해당 클래스의 유일한 인스턴스입니다.

다음은 코틀린 객체 선언에 대한 기본 구조와 사용법에 대한 설명입니다.

 

기본 구조

object MySingleton {
    // 객체 선언의 멤버(프로퍼티, 함수 등) 정의
    var count: Int = 0

    fun increment() {
        count++
    }
}

 

사용법

fun main() {
    // 객체 선언에서 정의한 프로퍼티와 함수 호출
    println(MySingleton.count)    // 출력: 0
    MySingleton.increment()
    println(MySingleton.count)    // 출력: 1
}

 

특징

1. 인스턴스 유일성 보장: 객체 선언은 클래스의 인스턴스를 단 하나만 가질 수 있습니다. 이는 싱글톤 패턴의 핵심입니다.
2. 클래스와 객체 선언 동시 사용: 객체 선언은 클래스 정의 내부나 외부에서 사용될 수 있습니다.

class MyClass {
    // 객체 선언 내부에서 사용
    object InnerObject {
        // ...
    }
}

// 클래스 외부에서 사용
object AnotherObject {
    // ...
}

3. 프로퍼티, 함수, 초기화 블록 사용: 객체 선언 내부에는 프로퍼티, 함수, 초기화 블록 등을 정의할 수 있습니다.

object MyObject {
    var property: Int = 0

    fun myFunction() {
        // ...
    }

    init {
        // 초기화 블록
    }
}

4. 클래스를 상속할 수 있음: 객체 선언은 클래스를 상속받을 수 있습니다. 상속받는 경우 해당 객체가 상속받은 클래스의 유일한 인스턴스가 됩니다.

open class MyBaseClass {
    // ...
}

object MyObject : MyBaseClass() {
    // ...
}

5. 파일 수준의 멤버: 객체 선언은 파일 수준에서 정의되는 멤버입니다. 다른 클래스나 함수 등과 동일한 파일에 위치할 때 해당 파일 내에서 공유됩니다.

// MyObject는 파일 수준의 객체 선언
object MyObject {
    // ...
}

fun main() {
    // MyObject에 접근 가능
    println(MyObject)
}

코틀린의 객체 선언은 간단하면서도 강력한 싱글톤 패턴의 구현 방식을 제공합니다. 객체 선언을 사용하면 불필요한 싱글톤 클래스의 정의를 피하고 코드를 간결하게 유지할 수 있습니다.

 

With ChatGPT

'Kotlin > 포스팅' 카테고리의 다른 글

코틀린 객체 식  (0) 2023.12.30
코틀린 동반 객체  (0) 2023.12.30
코틀린 객체  (0) 2023.12.30
코틀린 지연 계산 프로퍼티와 위임  (0) 2023.12.30
코틀린 커스텀 접근자  (0) 2023.12.30