Every program needs a point from where the execution starts. In OOPS classes need objects to get executed. But the main() method needs to be executed first to call other members of the class.
For executing the main() method in scala many object-oriented programming languages use the static keyword but it scala programming language there is no static keyword. That is why in scala we use a singleton object that defines the main method.
Situation where you can use :-
Suppose you have a method which identifies if the password entered is a weak or strong password, then you can create this method in a Singleton Object and share it with your team members to use it wherever required