基于java枚举类综合应用的说明
时间:2021-01-19 12:04:00|栏目:JAVA代码|点击: 次
如下面代码以交灯为示例:
复制代码 代码如下:
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)方法可以将字符串转换成一个枚举。
上一篇:spring boot Logging的配置以及使用详解
栏 目:JAVA代码
本文标题:基于java枚举类综合应用的说明
本文地址:http://www.codeinn.net/misctech/47317.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




