private/protected constructors are very important and they are useful in many ways in OOP. Many of the
Java classes use them, the idea is to have greater control on 'how a new instance will be created', the ones having such constructors typically have factory methods (you may want to read book - Design
Patterns) to create an instance. One class I can think of now which has such a constructor is URLConnection, among many others.
You can't do new URLConnection(), but can get a reference to it by method openConnection() of URL class.
[This message has been edited by Manish Hatwalne (edited September 22, 2001).]