// 单例类publicclassA{// 2、定义一个静态变量记住类的一个对象privatestaticA a =newA();// 1、私有构造器privateA(){}// 3、定义一个静态方法返回对象publicstaticAgetObject(){return a;}}
单例类有很多形式
如“饿汉式单例”:拿对象时,对象早就创建好了。
publicclassA{// 2、定义一个静态变量记住类的一个对象privatestaticA a =newA();// 1、私有构造器privateA(){}// 3、定义一个静态方法返回对象publicstaticAgetObject(){return a;}}
如“懒汉式单例”:拿对象时,才开始创建对象。
特点:延迟加载对象
写法:
把类的构造器私有。
定义一个静态变量由于存储对象。
提供一个静态方法,保证返回的是同一个对象。
publicclassB{// 2、定义一个类变量量用于存储对象privatestaticB b ;// null// 1、单例必须私有构造器privateB(){}// 3、提供一个类方法返回类的一个对象publicstaticBgetObject(){if(b ==null){b =newB();}return b;}}
枚举类
枚举类是一种特殊类。
写法
修饰符 enum 枚举类名{名称1, 名称2,...; 其他成员…
}
特点:
枚举类中的第一行,只能写枚举类的对象名称,其要用逗号隔开。
这些名称,本质是常量,每个常量都记住了枚举类的一个对象。
publicenumA{X,Y,Z;}Compiled from "A.java"publicfinalclassAextendsjava.lang.Enum<A>{publicstaticfinalAX=newA();publicstaticfinalAY=newA();publicstaticfinalAZ=newA();publicstaticA[]values();publicstaticAvalueOf(java.lang.String);}