Typically it helps when you want a singleton object
pattern (where you create just one object for the whole application like maybe a database connection pool manager).
What you do is that you create a private constructor, and then give public access to a method called say getinstance(). In this method, you check if there already an instance created, if so return the refernce to the instance, if not, cerate an instance and return the refernce to it...
HTH,
Shubhangi