单例类:该类只能创建一个实例,或者说内存中只有一个实例,该类的对象引用的都是这个实例。
示例:
1 package my_package; 2 3 //定义一个单例类 4 class Singleton{ 5 //使用一个类变量来缓存曾经创建过的实例,instance 实例 6 private static Singleton instance; 7 8 //使用private修饰,对外隐藏构造器 9 private Singleton(){10 //......11 }12 13 //定义一个public方法,用于返回实例,供类外调用。需用static修饰14 public static Singleton getInstance(){15 if(instance==null){16 //因为构造函数不用static,所以只能通过new来调用,不能直接通过函数名来调用17 instance=new Singleton();18 }19 return instance;20 }21 22 }23 24 25 26 public class Test {27 public static void main(String[] args) {28 //构造函数被隐藏了,不能通过new来创建实例29 Singleton singleton1=Singleton.getInstance();30 //虽然创建了2个对象,但引用的是同一个对象,该类堆中只有一个实例31 Singleton singleton2=Singleton.getInstance();32 }33 34 }