Hi,
When you make your constructor public,protected or package specifier(default) you can can instantiate an object of that type as already explained.
When you make your constructor private, to be clear you are making your class a singleton, so We need to provide an accessor method, that returns an instance of the SingletonObject class, but doesn't allow more than one copy to be accessed. So take care while making constructor private.
I hope this helps you...
Cheers,
Ravi