我在一本书上看到这个,这里的内容试讲java的构造方法私有化的
class Singleton
{
Singleton instance=new Singleton();
private Singleton()
{}
public void print()
{
System.out.println("Hello World");
}
}
这个我想请教一下,为什么这里能在类定义里实例化本类的对象?
这里还列出了另一种方式:
class Singleton
{
static Singleton instance =new Singleton();
private Singleton(){}
public void print(){
System.out.println("Hello World");
}
}
public class TestDemo
{
public static void main(String args[])
{
Singleton inst=null;
inst=Singleton.instance;
inst.print();
}
}
从这两个例子来看,为什么能这样?类中实例化本类的对象不会陷入死循环之中?这里书上还说这种方式在单例设计和多例设计中会用到