When we create a private constructor, we can not create object of the class directly from the client. So you will use the private constructors whenever you do not want instances of the class to be created by any external client. For example the UTILITY functions in project will have no instance and be used without creating instance, as creating instances of the class would be a waste of memory.