枚举
1.是一组由固定常量组成的类型
2.使用enum定义
public enum Sex {
男,女
}
枚举其实就是一种类型,是java.lang.Enum类的子类,继承了Enum类的许多方法
这里定义T就是Enum的子类
枚举的好处
1.易于维护,类型安全
2.易于输入
3.代码清晰
枚举的构造函数
protected Enum(String name, int ordinal)
唯一的构造函数。 程序员无法调用此构造函数。 它由编译器响应枚举类型声明发出的代码使用
name:
返回此枚举常量的名称
大多数程序员应该使用toString()方法,因为toString方法可能会返回一个更加用户友好的名称
ordinal:
这个枚举常数的序数(它在枚举声明中的位置,其中初始常数被分配为零的序数)
大多数程序员将不会使用这种方法。 它被设计为使用复杂的基于枚举的数据结构,如EnumSet和EnumMap
枚举的子类的构造方法
构造方法不能被继承,枚举的构造方法也不能被调用
所以子类显示定义其构造方法,且默认为private,这是因为,枚举被设计成是单例模式,即枚举类型会由JVM在加载的时候,实例化枚举对象,你在枚举类中定义了多少个就会实例化多少个,JVM为了保证每一个枚举类元素的唯一实例,是不会允许外部进行new的,所以会把构造函数设计成private,防止用户生成实例,破坏唯一性。
//Sex是Enum的子类
public enum Sex {
男("man",1),女("woman",2);
//构造方法,默认为private
Sex (String name,int i){
}
}