私有构造函数的作用

1 防止对象被随意创建

2 用于实现单例

3 工具类防止实例化(不创建对象,方法设为静态,可通过对象.来调用)

4 应用于工厂模式的实现

父类方法调用子类实现
1。你可以返回任何的Shape类型,包括Shape的子类。比如你可以把makeShape写成这样:

public class Shape {
    private Shape() {
       /* set something here */
    }
    public static Shape makeShape(/* arglist */) {
           System.out.println("here is the shape you ordered");
           if (retangle)
                 return (new Retangle(/* arglist*/));
           if (Circle)
                return (new Circle(/* arglist */));
        /* you can return as many shapes as you like */
        }
}    
这里假设Retangle 和 Circle 都是shape的子类,并且和Shape类在同一个包內,
Shape类可以访问子类的构造函数。这样shape就提供了一个图形工厂。 用户通过一
个接口就可以生成不同的图形。事实上,这种用法被称为“工厂模式”。

5 方便抛出异常

在构造器中的异常一般会被jvm抛弃    
读了有收获就请肥宅喝瓶怡宝吧!