Ok, By specifying a constructor as private, it means that you cannot create object of that class. in other words it cannot be instantiated. the reason you may want to do this is for example if you have a private default constructor (which does some arbitrary work for the class) and a public non-default constructor. clients can then only call the non-default constructor to create objects of that class.
private/protected constructors are used so that you have more control over how the instances of class are created, typically by using factory methods. Math is a final class (so can not be extended), which has such a constructor, so you can use its static methods but can not instantiate it. Abstract class would ensure that the class can not be instantiated, but the u won't be able to make it final. HTH, - Manish
Originally posted by chao-long liao: Constructor can be private,but why??how to use private constructor??
A private member can't be invoked outside of the implementing class. The same holds true for a private constructor. By making a constructor private, that constructor can only be used by the class, itself. This is used in the context of a singleton pattern. This can be used to gain control over how and when an instance of the class is created. Corey