单例类:该类只能创建一个实例,或者说内存中只有一个实例,该类的对象引用的都是这个实例。
示例:
package my_package; //定义一个单例类 class Singleton{ //使用一个类变量来缓存曾经创建过的实例,instance 实例 private static Singleton instance; //使用private修饰,对外隐藏构造器 private Singleton(){ //...... } //定义一个public方法,用于返回实例,供类外调用。需用static修饰 public static Singleton getInstance(){ if(instance==null){ //因为构造函数不用static,所以只能通过new来调用,不能直接通过函数名来调用 instance=new Singleton(); } return instance; } } public class Test { public static void main(String[] args) { //构造函数被隐藏了,不能通过new来创建实例 Singleton singleton1=Singleton.getInstance(); //虽然创建了2个对象,但引用的是同一个对象,该类堆中只有一个实例 Singleton singleton2=Singleton.getInstance(); } }