Kotlin object 사용법 > IT 기술백서

object 는 타언어의 static 과 같은 용도로 사용할 수 있으며 이 특징을 이용해 싱글턴 패턴이 가능하다.

 

1. object 클래스

object 는 프로그램이 실행될때 자동으로 인스턴스화 되는 클래스이다.

[code]

fun main() {

    println(Counter.count)

    

    Counter.countUp()

    Counter.countUp()

    

    println(Counter.count)

    

    Counter.clear()

    

    println(Counter.count)

}

object Counter {

    var count = 0

    

    fun countUp() {

        count++

    }

    

    fun clear () {

        count = 0

    }

}

[/code]

 

출력결과

[code]

0

2

0

[/code]

 

2. companion object

클래스 내부에 static 멤버와 같이 작동한다.

여러개의 객체를 생성하여도 companion object 는 공유한다.

 

[code]

fun main() {

    var f1 = FoodPoll(“부먹”)

    var f2 = FoodPoll(“찍먹”)

    

    f1.vote()

    f1.vote()

    

    f2.vote()

    f2.vote()

    f2.vote()

    

    println(“F1 count: ${f1.count}”)

    println(“F2 count: ${f2.count}”)

    

    println(“Total: ${FoodPoll.total}”)

}

class FoodPoll(val name: String) {

    companion object {

        var total = 0

    }

    

    var count = 0

    

    fun vote() {

        total++

        count++

    }

}

[/code]

 

결과

[code]

F1 count: 2

F2 count: 3

Total: 5

[/code]

 

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤