你之所以能优于别人,正是因为你坚持了别人所不能坚持的。
本文相关代码在我的Github,欢迎Star~
https://github.com/zhangzhibo1014/DaBoJava
枚举(enum)类型是 Java 5
新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。
enum
和 class
、 interface
具有相同地位 java.lang.Enum
类,所以不能继承其他类,其中 java.lang.Enum
类实现了 java.lang.Serializable
和 java.lang.Comparable
接口 enum
定义,默认使用 final
修饰,因此不能派生子类 private
修饰,且只能使用 private
修饰 public static final
修饰,无需显式添加 /**
* 枚举类
*/
public class Demo {
public static void main(String[] args) {
//声明一个枚举类实例,并赋值
Season season = Season.SPRING;
switch(season) {
case SPRING:
System.out.println("Spring");
break;
case SUMMER:
System.out.println("Summer");
break;
case FALL:
System.out.println("Fall");
break;
case WINTER:
System.out.println("Winter");
break;
default:
break;
}
}
}
/**
* 定义一个枚举类
*/
enum Season{
SPRING, SUMMER, FALL, WINTER
}
public enum Health{
GOOD(0, "良好"),
SICK(1, "生病"),
FINE(2, "健康");
private int code;
private String name;
private Health(int code, String name) {
this.code = code;
this.name = name;
}
public int getCode() {
return code;
}
public String getName() {
return name;
}
}
int compareTo(Enum e):用于比较两个枚举类型的顺序,如果该枚举类型位于枚举类型e之后,则返回正数,反之返回负数,相同返回零
values():返回一个枚举类型的数组,可以用来遍历枚举类
String name():返回枚举实例的枚举值。
int ordinal():返回枚举实例的声明顺序,从0开始
T valueOf(Class<T> enumType, String name):返回带指定名称的指定枚举类型的枚举常量。
boolean equals():用来比较两个枚举对象的枚举值。相同返回true,反之返回false
也可以使用 == 来比较
public class Demo2 {
public static void main(String[] args) {
Health health = Health.GOOD;
Health health1 = Health.FINE;
Health health2 = Health.SICK;
Health health3 = Health.GOOD;
//compareTo()
System.out.println(health.compareTo(health1));
System.out.println(health1.compareTo(health2));
//values()
Health[] healths = Health.values();
for(Health h : healths) {
System.out.print(h + " ");
}
System.out.println();
//name()
System.out.println(health.name());
//ordinal()
System.out.println(health2.ordinal());
//valueOf()
Health health4 = Health.valueOf(Health.class, health2.name());
System.out.println(health4);
//equals()
System.out.println(health.equals(health3));
System.out.println(health == health3);
}
}
/**
* 枚举类
*/
enum Health{
GOOD(0, "良好"),
SICK(1, "生病"),
FINE(2, "健康");
private int code;
private String name;
private Health(int code, String name) {
this.code = code;
this.name = name;
}
public int getCode() {
return code;
}
public String getName() {
return name;
}
}
实际上在使用关键字 enum
创建枚举类型并编译后,编译器会为我们生成一个相关的类,这个类继承了 Java API
中的 java.lang.Enum
类,也就是说通过关键字 enum
创建枚举类型在编译后事实上也是一个类类型而且该类继承自 java.lang.Enum
类
枚举类可以代替常量来使用,比如:状态码,星期等,结合实际场景使用。
相关代码记录于 GitHub 中,欢迎各位伙伴 Star !
有任何疑问 微信搜一搜 [程序猿大博] 与我联系~
如果觉得对您有所帮助,请 点赞 , 收藏 ,如有不足,请评论或私信指正!谢谢~