Companion Objects
A singleton object is defined the same way a class is defined with the difference that instead of the class keyword, we use the object keyword.
Unlike a class, which can be instantiated multiple times, a singleton object only has a single instance. This is why we cannot use new to create an instance of a singleton object.
There are two types of singleton objects:
Companion Objects
Standalone Objects
Companion Objects
A singleton object which has the same name as a class is known as the companion object of that class and the class is known as the companion class. Companion objects and classes can access each other’s private members.
Let’s define a companion object of the ChecksumAccumulator class defined in the previous lesson.