枚举类
1.概述
枚举类是一种特殊的类,它的对象个数是有限个。
适用场景: 当对象的个数已经固定,并有限时,例如:性别,星期等等
语法
public enum 枚举类名{
}
例如用一个简单的枚举类来表性别
其中MALE、FEMALE为枚举类的对象。
public enum 枚举类名{
MALE;
FEMALE;
}
枚举类可以使用的方法
首先,调用枚举类中的对象可以直接使用:类名.对象名。
枚举类可以使用的方法:
1.ordinal();获取枚举对象的序号
2.name();把枚举对象转为字符串
3.valueOf;把字符串转为枚举对象
4.values();以数组形式返回所有的枚举对象。
public class TestEnum {
public static void main(String[] args) {
// 获取枚举对象的序号,序号从0开始
System.out.println(Sex.MALE.ordinal());//0
System.out.println(Sex.FEMALE.ordinal());//1
// 把枚举对象转为字符串
System.out.println(Sex.MALE.name()); //MALE
// 把字符串转为枚举对象, 虚拟机中的枚举对象只会有一份, 可以用== 来比较
System.out.println(Sex.valueOf("MALE") == Sex.MALE);//true
// 打印所有的枚举对象
for (Sex value : Sex.values()) {
System.out.println(value);//MALE / FEMALE
}
}
}
3.枚举类中的方法和构造方法
枚举类中也可以使用一般的方法。
例如:
public enum 枚举类名{
MALE;
FEMALE;
public String test() {
return "ok";
}
}
public class TestEnum {
public static void main(String[] args) {
System.out.println(Sex.MALE.test());//ok
}
}
枚举类中的构造方法不能是公有的,同样,枚举类也不能被继承。
定义的对象的参数类型和个数必须与构造方法保持一致。
public enum Sex {
MALE("男"),
FEMALE("女");
private String cName;
public String cnName() {
return this.cName;
}
// 构造方法不能是公共的
Sex(String cnName) {
this.cName = cnName;
}
}
public class TestEnum {
public static void main(String[] args) {
System.out.println(Sex.MALE.cnName());//男
System.out.println(Sex.FEMALE.cnName());//女
}
}