基于java枚举类综合应用的说明
更新时间:2013年05月06日 09:36:10 作者:
一个枚举类,可以看成包括它的一些子类(枚举)的一个类,而且枚举类的构造方法只能是私有的
如下面代码以交灯为示例:
复制代码 代码如下:
public class Test {
public static void main(String[] args) {
Trafficlight light = Trafficlight.RED;
System.out.println(light.time);
System.out.println(light.nextLigth());
// ordinal()方法返回枚举声明的顺序
System.out.println(light.ordinal());
// values()方法得到所有枚举类型的一个数组
for(Trafficlight light1:light.values()){
System.out.println(light1.name());
}
// valueOf()方法可以把字符串转换成相应的枚举对象
System.out.println(light.RED ==light.valueOf("RED"));
}
public enum Trafficlight {
GREEN(30) {
@Override
public Trafficlight nextLigth() {
return RED;
}
},
RED(30) {
@Override
public Trafficlight nextLigth() {
return YELLOW;
}
},
YELLOW(10) {
@Override
public Trafficlight nextLigth() {
return GREEN;
}
};
public abstract Trafficlight nextLigth();
private int time;
// 构造方法
private Trafficlight(int time) {
this.time = time;
}
public int getTime(){
return time;
}
}
}
代码中,可以看到GREEN,RED,YELLOW,分别是Trafficlight的一个子类,并作为它的成员变量。在Trafficlight有一个抽象方法nextLight(),在子类中是必须要实现的,所以@Override,另外它们也继承了父类的方法,所以可以调用父类的方法 getTiime(),由于父类Trafficlight中声明一个有参数的构造方法覆盖了无参的构造方法,所以构建子类时也必须要加上参数。
代码中light只是相当于一个父类的实例,用它可以得到各个成员变量的子类,调用各种方法,valueOf(String)方法可以将字符串转换成一个枚举。
相关文章
解决mybatis plus字段为null或空字符串无法保存到数据库的问题
这篇文章主要介绍了解决mybatis plus字段为null或空字符串无法保存到数据库的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02
玩转spring boot 结合AngularJs和JDBC(4)
玩转spring boot,这篇文章主要介绍了结合AngularJs和JDBC,玩转spring boot,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-01-01
Spring Boot结合IDEA自带Maven插件如何快速切换profile
IDEA是目前 Java 开发者中使用最多的开发工具,它有着简约的设计风格,强大的集成工具,便利的快捷键,这篇文章主要介绍了Spring Boot结合IDEA自带Maven插件快速切换profile,需要的朋友可以参考下2023-03-03


最新评论