Yebali

Kotlin의 Static Method와 Function 본문

Kotlin

Kotlin의 Static Method와 Function

예발이 2021. 9. 22. 21:43

Static 이란?

Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미합니다.

Static 변수와 Static 메서드는 Static 메모리 영역에 존재하므로 객체가 생성되기 이전에 이미 할당이 되어 있습니다.

그렇기 때문에 객체의 생성 없이 바로 사용할 수 있습니다. 

Kotlin에서는 static 키워드 대신 objectcompanion object 키워드를 사용합니다.

Object

Object는 최초 사용시 자동으로 생성되고, 생성자도 필요하지 않다.

object Counter {
    var count = 0
    
    fun countUp() {
        count++
    }
    
    fun clear() {
        count = 0
    }
}

fun main() {        
    
    println(Counter.count)
    
    Counter.countUp()
    Counter.countUp() 
    println(Counter.count)
    
    Counter.clear()
    println(Counter.count)    
}

 

companion object

클래스 안에서 Object를 만들면 여러 개의 인스턴스들이 공통으로 사용하는 값이나 함수를 가질 수 있다.

class FoodPoll (val name: String) {
    companion object {
        var total = 0
    }
    
    var count = 0
    
    fun vote() {
        total++
        count++
    }
}

fun main() {        
    
    var a = FoodPoll("짜장")
    var b = FoodPoll("짬뽕")
    
    a.vote()
    a.vote()
    
    b.vote()
    b.vote()
    b.vote()
    
    println("${a.name} : ${a.count}")
    println("${b.name} : ${b.count}")
    println("총계 : ${FoodPoll.total}")  
}

'Kotlin' 카테고리의 다른 글

Kotlin의 nullable변수 처리  (0) 2021.09.22
Kotlin의 제너릭  (0) 2021.09.22
Kotlin의 스코프 함수  (0) 2021.09.22
Kotlin의 고차함수와 람다함수  (0) 2021.09.22
Kotlin의 추상화와 인터페이스  (0) 2021.09.22