본문 바로가기
Kotlin

코틀린 - Object 함수(Companion)

by sinabeuro 2023. 5. 1.
728x90

Companion Object

companion object 에 유틸성 함수들을 넣어도 되지만, 최상단 파일을 활용하는 것을 추천 드립니다!

자바에서 코틀린에 있는 static field 나 statice 함수를 사용하고 싶을 때는 @JvmStatic 어노테이션을 씁니다.

 

Person.Companion.newBaby("ABC"); 로 접근 가능

Person.newBaby("ABC"); 로 접근 가능

 

반면 컴파니언 명이 있는 경우

class Person private constructor (
	var name: String,
    var age: Int,
) {
    companion object Factory {

        private const val MIN_AGE = 1

        @JvmStatic
        fun newBaby(name: String): Person {
            return Person(name, MIN_AGE)
        }
    }
}

Person.Factory.newBaby("ABC"); 로 접근을 해야한다. 즉, 컴패니언 오브잭트 명으로 접근해야합니다.

 

싱글톤

object Singleton {
	var a: Int = 0
}

 

익명클래스

interface Movable {
    fun move()
    fun fly()
}

 

 

fun main() {
    moveSomething(object : Movable {
        override fun move() {
            TODO("Not yet implemented")
        }

        override fun fly() {
            TODO("Not yet implemented")
        }
    })

}

private fun moveSomething(movable: Movable) {
    movable.move()
    movable.fly()
}

 

728x90

'Kotlin' 카테고리의 다른 글

Kotlin - 다양한 함수  (0) 2023.05.06
Kotlin - 컬렉션  (0) 2023.05.06
코틀린 - 접근 제어자  (0) 2023.05.01
코틀린 - 클래스 생성자와 상속  (0) 2023.05.01
Kotlin - 기본 문법2  (0) 2023.04.17

댓글