返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #35032同步于 2014/9/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
private,protected的构造函数都是用在哪里的呢?
slkobe
2014/9/30镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
可用在单例模式中,代码如下:
package com.test;
class T{
private static T t;
static{
t = new T();
}
private T(){
}
public static T getInstance(){
return t;
}
}
public class OneSimple{
public static void main(String[] args){
T t1 = T.getInstance();
T t2 = T.getInstance();
System.out.println(t1==t2);
}
}
其中static块的代码只会在该类第一次被加载的时候调用。
除了单例还有一些情况, 比如一个类的构造函数很复杂, 可以用builder模式.
还有比如对于Utility类, 正常我们不希望被这些类被实例化, 所以会提供一个private的构造函数.
楼主可以参考Effective Java中讲销毁和创造对象的那种.