如果一个类始终只能创建一个实例,则这个类被称为单例类。
public class Singleton {
private static Singleton instance;//使用一个变量缓存曾经创建的实例
private Singleton(){}//隐藏构造器,避免其他类自由创建该类对象
//提供public方法创建对象,且必须使用static修饰,因为调用该方法之前不存在对象,调用该方法的只能是类
public static Singleton getInstance()
{
if(instance==null)//instance为null,表明不曾创建
{
instance=new Singleton();//创建一个Singleton对象,并将其缓存起来
}
return instance;
}
}
public class SingletonTest {
public static void main(String[] args) {
Singleton s1=Singleton.getInstance();//用getInstance方法创建对象,不用构造器
Singleton s2=Singleton.getInstance();
System.out.println(s1==s2);//输出true,即两次产生的Singleton对象是同一个对象
}
}