一. 枚举类
(1)语法
public enum 枚举类名{
}
(2)适用场景:
当对象的个数已经固定,并有限时,例如:性别,星期等等()
举例:
//定义一个枚举类
public enum Sex {
//男性
MALE,
//女性
FEMALE
}
(3)枚举类中常用的方法
//枚举类中常用的方法
//1.获取枚举类中对象的序号,序号从0开始
System.out.println(Sex.MALE.ordinal());//0
System.out.println(Sex.FEMALE.ordinal());//1
//2.枚举类和字符串的转换
//把枚举对象转为字符串
System.out.println(Sex.MALE.name());//MALE
//把字符串转为枚举对象
Sex female = Sex.valueOf("FEMALE");
//虚拟机中的枚举对象只有一份,可以用==来比较
System.out.println(Sex.valueOf("MALE") == Sex.MALE);//true
//3.打印所有的枚举对象
for (Sex sex : Sex.values()) {
System.out.println(sex);
}
(4)枚举类中也可以有方法,构造方法,属性, 但 构造方法不能是公共的
枚举类不能继承
public enum Sex {
// 男性
MALE("男"),
// 女性
FEMALE("女");
// 方法,构造方法...
public String test() {
return "ok";
}
private String cnName;
public String cnName() {
return this.cnName;
}
// 构造方法不能是公共的
Sex(String cnName) {
this.cnName = cnName;
}
}
二.设计模式
编程中的一些套路,让我们的代码实现特定的目的,结构上更加优秀 简称 GOF (group of Four) -- 23种
1.单例模式 (Singleton)
(1)定义:虚拟机中这个类只有一个实例(一个对象)
(2)实现方式
方法1:饿汉式单例 (一开始就创建好)
public class Singleton1 {
/**
* 让构造方法私有,别人就没法创建此类的实例了
*/
private Singleton1() {
}
/**
* 自己创建这个实例
*/
private static final Singleton1 ME = new Singleton1();
/**
* 获取唯一实例
* @return
*/
public static Singleton1 getInstance() {
return ME;
}
}
方法2:懒汉式单例 (用到时才创建,用不到不创建)
在多线程下为了保证真正的单例&