본문으로 바로가기

[Kotlin] companion(static 자원 in Java) / private 제어자

category Android 2020. 3. 31. 13:56

companion(static 자원 in Java)


Kotline에서는 'companion object' 예약어를 사용해 블럭을 만듬으로써

Java의 static 자원 처럼 활용할 필드나 메소드를 정의할 수 있다.

 

1
2
3
4
5
6
7
8
9
10
class MyUtil{
    //클래스명에 . 찍어서 사용할 수 있는 자원 만들기(Java의 static 클래스 같이)
    //동반 객체 정의 하기
    companion object{
        val color="Red"
        fun write(){
            println(color+"필기를 해요!")
        }
    }
}
cs

 

-출력-

1
2
3
4
5
fun main(){
    MyUtil.write() // static 메소드 호출
    var a=MyUtil.color // static 필드 참조
    println("a:"+a)
}
cs

 

 

[예시]

//Single ton으로 사용할 수있는 Dao
class YourDao private constructor(){
    companion object{
        private val dao=YourDao() //? 예약어를 사용하지 않았으므로 null값 불가능
        fun getInstance():YourDao{
            return dao
        }
    }

    fun insert(){
        println("YourDao insert!")
    }
    fun update(){
        println("YourDao update!")
    }
}

fun main(){
	YourDao.getInstance().insert()
	YourDao.getInstance().update()
}

 

 

제어자


제어자의 개념은 아래의 링크를 참고 해주세요.

https://sallykim5087.tistory.com/95