오브젝트는 클래스의 인스턴스를 만들어 내지 않고, 고유한 인스턴스를 바로 생성하는 것이 가능한 싱글톤 패턴의 구현 방법 중 하나입니다. 코틀린에서는 object
키워드를 사용하여 오브젝트를 생성할 수 있습니다. 이를 사용하면 인스턴스를 생성하기 위한 보일러플레이트 코드를 줄일 수 있으며, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
object Pig{
var name: String = "Pinky"
fun printName(){
Log.d("class", "Pig의 이름은 ${name}입니다.")
}
}
컴패니언 오브젝트는 클래스 내부에 선언되는 오브젝트로, 클래스의 인스턴스와는 별개로 생성되며 해당 클래스와 관련된 유틸리티 메서드나 프로퍼티를 담을 수 있습니다. 컴패니언 오브젝트를 선언하면 해당 클래스의 이름으로 접근할 수 있는 "정적" 멤버 변수나 메서드를 선언할 수 있습니다. 코틀린에서는 companion object
키워드를 사용하여 컴패니언 오브젝트를 생성할 수 있습니다.
class MyClass {
companion object {
*val myProperty = "Hello, World!"
fun myMethod() {
println("This is a companion object method.")
}*
}
}
MyClass.*myProperty = "Hi"*
MyClass.*myMethod() -> "This is a companion object method."*
위 코드에서 MyClass.myProperty
와 MyClass.myMethod()
를 이용하여 컴패니언 오브젝트의 멤버에 접근할 수 있습니다.