枚举类定义,实现接口与其常用方法
一.枚举类定义:
步骤一:提供当前枚举类的对象,且多个对象之间用",“隔开,最后一个对象用”; "结束。示例:
enum Season {
// 1.提供当前枚举类的对象,多个对象之间用“,”隔开,末尾对象“;”结束
SPRING("春天", "春来花开"),
SUMMER("夏天", "夏日炎炎"),
AUTUMN("秋天", "秋风萧瑟"),
WINTER("冬天", "寒风凛凛");
}
步骤二:声明枚举类(Season)对象的属性:private final 修饰。示例:
private final String seasonName;
private final String seasonDesc;
步骤三:私有化类的构造器,并给对象属性赋值。示例:
private Season(String s1, String s2) {
seasonName = s1;
seasonDesc = s2;
}
步骤四:其他需求:例如获取枚举类对象的属性。示例:
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
二.枚举类常用方法:
1.toString():如果未重写该方法,则返回当前枚举类对象常量的名称;如果自己重写了,则根据自己的需求返回String类型的值。(未重写)运行示例:
Season season = Season.SUMMER;
System.out.println(season.toString());
结果为:SUMMER
2.values():返回枚举类型的对象数组,该方法可以很方便地遍历所有的枚举值。示例:
Season[] values = Season.values();
for(int i = 0;i<values.length;i++) {
System.out.println(values[i]);
}
结果为:SPRING、SUMMER、AUTUMN、WINTER
3.valueOf(String str):可以把一个字符串转为对应的枚举类对象,要求字符串必须是枚举类对象。示例:
Season winterSeason = Season.valueOf("WINTER");
System.out.println(winterSeason);
结果为:WINTER
三.枚举类实现接口:
情况一:实现接口,在enum类中实现抽象方法;示例:
interface Info{
void show();
}
enum Season implements Info{
// 1.提供当前枚举类的对象,多个对象之间用“,”隔开,末尾对象“;”结束
SPRING("春天", "春来花开"),
SUMMER("夏天", "夏日炎炎"),
AUTUMN("秋天", "秋风萧瑟"),
WINTER("冬天", "寒风凛凛");
public void show() {
System.out.println();
}
}
运行代码:
Season season = Season.AUTUMN;
season.show();
说明此时可以调用show()方法;
情况二(重点):让枚举类的对象分别实现接口中的抽象方法;示例:
public class enum1 {
public static void main(String[] args) {
Season[] season = Season.values();
for(int i = 0;i<season.length;i++) {
System.out.println(season[i]);
season[i].show();
}
}
}
interface Info{
void show();
}
enum Season implements Info{
// 1.提供当前枚举类的对象,多个对象之间用“,”隔开,末尾对象“;”结束
SPRING("春天", "春来花开"){
public void show() {
System.out.println("春天在哪里");
}
},
SUMMER("夏天", "夏日炎炎"){
public void show() {
System.out.println("夏天在哪里");
}
},
AUTUMN("秋天", "秋风萧瑟"){
public void show() {
System.out.println("秋天在哪里");
}
},
WINTER("冬天", "寒风凛凛"){
public void show() {
System.out.println("冬天在哪里");
}
};
}
结果为:
SPRING春天在哪里
SUMMER夏天在哪里
AUTUMN秋天在哪里
WINTER冬天在哪里