We can have static method inside which we can invoke the private constructor hence we can create the instance directly by invoking static method.
You mean this?
javac TestConstructor.java
TestConstructor.java:9: TestConstructor is abstract; cannot be instantiated
new TestConstructor();
^
1 error
A class type should be declared abstract only if the intent is that subclasses can be created to complete the implementation. If the intent is simply to prevent instantiation of a class, the proper way to express this is to declare a constructor of no arguments, make it private, never invoke it, and declare no other constructors. A class of this form usually contains class methods and variables.
A compile-time error occurs if an attempt is made to create an instance of an abstract class using a class instance creation expression
[ December 28, 2006: Message edited by: Aniket Patil ]