본문 바로가기

카테고리 없음

Companion Object

companion object
-자바의 static 대신 사용된다.  
-정적인 메소드나 정적인 변수를 선언할 때 사용한다.

class Book private constructor(val id : Int, val name:String){
    companion object Bookfactory : IdProvider {
   //companion object : Idprovider    
        override fun getId() : Int {
            return 444
        }
        val myBook = "new book"
        fun create()=Book(getId(), myBook)
    }
}
interface IdProvider{
    fun getId() : Int
}

companion object가 하는 일 private property나 메소드를 읽어 올 수 있다

상속이 가능하고 위의 코드처럼 companion object의 이름을 지정할 수 있다.

class 안에는 1개의 companion object만 들어갈 수 있다.