Kotlin

코틀린 정적 변수

Jyuni 2023. 3. 14. 23:54

companion object

자바에서의 static 같이 동적인 초기화 없이 정적으로 고정하는 방법.

코틀린은 static이 없이 때문에 companion object를 사용한다.

프로그램 실행 시 고정적으로 가지는 메모리.

객체 생성 없이 사용한다. 단 자주 사용되지 않는 변수나 객체를 만들면 메모리가 낭비된다.

class Coffee {
    var name: String = "Americano"
    var price: Int = 4000

    companion object {
        var language: String = "Korean"
        fun drink() {
            println("drink")
        }
    }
}

fun main() {
    println(Coffee.language)
    Coffee.language = "English"
    println(Coffee.language)
    Coffee.drink()
    // Coffee.name  컴페니언 객체가 아니므로 에러가 뜬다.
}


/* 출력
Korean
English
drink
*/