枚举类定义
枚举类的对象是有限个、确定的。例如性别:男、女(从法律角度讲)。当需要定义一组常量时,可以通过枚举类去实现。
枚举类的实现(enum关键字)
package Package4.枚举类;
public class SexEnum {
public static void main(String[] args) {
System.out.println(Sex.MAN);
}
}
enum Sex{ //枚举类用enum关键字代替class
//1.先定义枚举类的对象
MAN("男"),
WOMAN("女");
//2.定义枚举类的属性,用private final修饰
private final String name;
//3.创建枚举类的构造方法
Sex(String name){
this.name=name;
}
//4.额外要求
public String getName() {
return name;
}
@Override
public String toString() {
return "Sex{" +
"name='" + name + '\'' +
'}';
}
}
Enum中常用的三种方法
1.values:返回枚举类的所有常量,并用数组存放
2.valueOf:返回具有指定名称的指定枚举类的枚举常量。该名称必须与用于在此类中声明枚举常量的标识符完全匹配。如果传入的值有错就会抛出IllegalArgumentException
3.toString返回枚举常量的名称。自定义枚举类可以将其覆盖
package Package4.枚举类;
public class SexEnum {
public static void main(String[] args) {
//values的用法
Sex[] values = Sex.values();
for (int i = 0; i < values.length; i++) {
System.out.println(values[i]);
}
//valueOf的用法
Sex sex=Sex.valueOf("MAN");
System.out.println(sex+"\n");
//toString的用法
System.out.println(sex.toString());
}
}
枚举类实现接口
1.直接重写接口的方法
2.在每个枚举常量里重写接口的方法,可以实现每个枚举对象的细节
interface Make{
void showMake();
}
enum Sex implements Make{
//1.先定义枚举类的对象
MAN("男"){
//第一种
@Override
public void showMake() {
System.out.println("上班");
}
},
WOMAN("女") {
@Override
public void showMake() {
System.out.println("做饭");
}
};
//第二种
@Override
public void showMake() {
System.out.println("做工作");
}
......