Unlock the Power of Companion Objects in Kotlin
When working with classes in Kotlin, you’re likely familiar with creating objects to access members. For instance, let’s say we have a Person
class with a callMe()
method. Normally, we’d create an object p1
of the Person
class to call this method. But did you know that Kotlin offers a more efficient way to achieve this?
Class vs. Companion Object: What’s the Difference?
In Kotlin, you can call the callMe()
method directly using the class name, Person
. To do this, you need to create a companion object by marking the object declaration with the companion
keyword.
Example: Companion Objects in Action
Take a look at the following code:
“`
class Test {
companion object {
fun callMe() {
println(“Calling from companion object”)
}
}
}
fun main() {
Test.callMe()
}
“
Calling from companion object
When you run this program, the output will be:. As you can see, we've successfully called the
callMe()method using the class name,
Test`.
The Ins and Outs of Companion Objects
Here are some key things to keep in mind:
- The companion object’s name is optional and can be omitted.
- If you’re familiar with Java, you might relate companion objects to static methods, although they work differently under the hood.
- Companion objects can access private members of the class, making them ideal for implementing factory method patterns.
By leveraging companion objects in your Kotlin code, you can write more concise and efficient programs. So why not give it a try and see the difference for yourself?