Some reasons where you may need private constructor:
- The constructor can only be accessed from static factory method inside the class itself. Singleton can also belong to this category.
- A utility class, that only contains static methods.
Some reasons where you may need private constructor: