jdk1.5新特性5之枚举之模拟枚举类型
一 简单应用
package cn.xy.Enum;
public enum TrafficLamp
{
RED,GREEN,YELLOW;
}
TrafficLamp red = TrafficLamp.RED;
System.out.println(red);
System.out.println(red.name());
System.out.println(red.ordinal());
System.out.println(TrafficLamp.valueOf("YELLOW"));
TrafficLamp[] ts = TrafficLamp.values();
for (TrafficLamp t : ts)
{
System.out.println(t.name());
}
结果
RED
RED
0
YELLOW
RED
GREEN
YELLOW
二 复杂应用
package cn.xy.Enum;
public enum TrafficLampComplex
{
// 元素列表必须放在枚举类的最上面
RED(10)
{
@Override
public TrafficLampComplex nextLamp()
{
return GREEN;
}
@Override
public String getValue()
{
return "红灯,时长" + this.getTime();
}
},
GREEN(10)
{
@Override
public TrafficLampComplex nextLamp()
{
return YELLOW;
}
@Override
public String getValue()
{
return "绿灯,时长" + this.getTime();
}
},
YELLOW(5)
{
@Override
public TrafficLampComplex nextLamp()
{
return YELLOW;
}
@Override
public String getValue()
{
return "黄灯,时长" + this.getTime();
}
};
/**
* 时长
*/
private int time;
TrafficLampComplex()
{
}
TrafficLampComplex(int time)
{
this.time = time;
}
/**
* 下一个灯
* @return
*/
public abstract TrafficLampComplex nextLamp();
/**
* 取值
* @return
*/
public abstract String getValue();
public int getTime()
{
return time;
}
public void setTime(int time)
{
this.time = time;
}
}
TrafficLampComplex tcRed = TrafficLampComplex.RED;
System.out.println(tcRed.nextLamp());
System.out.println(tcRed.getValue());
结果
GREEN
红灯,时长10
三 提示
如果理解该例子有困难,请参看本博客的《jdk1.5新特性5之枚举之模拟枚举类型》
转载于:https://blog.51cto.com/woshixy/1059803
jdk1.5新特性5之枚举之模拟枚举类型相关推荐
- 黑马程序员————高新技术————JDK1.5新特性
----------------------ASP.Net+Android+IOS开发----------------------期待与您交流! JDK1.5新特性 一:静态导入 l Import语 ...
- JDK-1.5_新特性
1.泛型(Generics) 泛型是JDK1.5中一个最"酷"的特征.通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出ClassCastExceptions的可能.在JD ...
- java基础知识总结:基础知识、面向对象、集合框架、多线程、jdk1.5新特性、IO流、网络编程
目录 一.基础知识: 二.面向对象 三.集合框架 四.多线程: 五.jdk1.5的新特性 六.IO流 七.网络编程: 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtua ...
- JDK1.8 新特性(全)
JDK1.8 新特性 本文主要介绍了JDK1.8版本中的一些新特性,乃作者视频观后笔记,仅供参考. jdk1.8新特性知识点: Lambda表达式 函数式接口 方法引用和构造器调用 Stream AP ...
- jdk1.8新特性的应用-Stream 的终止操作
jdk1.8新特性的应用-Stream 的终止操作 public class TestStreamApi4 {List<Employee> emps = Arrays.asList(new ...
- jdk1.8新特性_Lambda表达式的引入
jdk1.8新特性_Lambda表达式的引入 引入 需求: 获取工资大于20000的员工信息 public class Employee {private String name;private in ...
- java 1.7 可变参数,JDK1.7新特性(2):异常和可变长参数处理
异常 jdk1.7对try--catch--finally的异常处理模式进行了增强,下面我们依次来看增强的方面. 1. 为了防止异常覆盖,给Throwable类增加了addSuppressed方法,可 ...
- JAVA day20、21 双列集合Map<K,V>:HashMap,LinkedHashMap,TreeMap,Hashtable, ConcurrentHashMap;JDK1.9新特性
一.Map<K,V> Java提供了专⻔的集合类⽤来存放这种这种⼀⼀对应的关系,叫做映射对象,即 java.util.Map 接⼝. 类型参数: K - 此映射所维护的键的类型 V - 映 ...
- JDK1.6“新“特性Instrumentation之JavaAgent
JDK1.6"新"特性Instrumentation之JavaAgent 文章目录 JDK1.6"新"特性Instrumentation之JavaAgent 简 ...
最新文章
- 【转】iOS实时卡顿监控
- 向量时钟算法简介——本质类似MVCC
- 删除vs中最近的项目的方法
- java rabbitmq 绑定_RabbitMQ:交换,队列和绑定 - 谁设置了什么?
- boost::outcome模块comparison相关的测试程序
- ViewPager+Fragment 组合的预加载和懒加载
- 2021年广东副高考试成绩查询,广东省中山市2021年高级会计师考试成绩可以查询了吗?...
- Linux 64位进程地址空间分布概况
- jqgrid columnChooser列的自定义及存储和获取
- css的animation动画
- 博为峰Java技术文章 ——JavaSE Swing焦点事件的处理
- 编译 mobileTerminal
- 计算机科学与技术概论,计算机科学与技术概论论文
- 模2除法(CRC校验码计算)模2除法和算数除法不同,文中例子120/13用模2除法结果:商11余数7,而算数除法结果:商9余数3
- 一个大型网站图片服务器架构的演进
- 【数学】三壶问题的一种通解
- 互联网赚钱:普通人月入上万的秘密,连载1
- java 消除png 锯齿_反转(移除)抗锯齿滤波器
- 人脸识别接口_人脸识别双模摄像头解析,免费搭配活体检测
- 为什么应对危机,企业倒闭比裁员好,裁员比降薪好?
热门文章
- mysql三高讲解(二):2.1 索引组织表
- C++socket编程(三):3.3 bind端口
- 一部分 数据 迁移_11项最佳实践,每次数据中心迁移都必不可少
- 杭电计算机研究院排名,2020浙江省大学最新10强排名,浙大第1,杭电第5
- php怎么调用dll例子,php调用dll的实例操作动画与代码分享_PHP教程
- h5获取http请求头_java学习之路(2),http协议,request类
- 用计算机用图解法求理论塔板数,用Excel图解法求精馏塔理论塔板数.pdf
- Flink watermark
- 2.5 网络中的网络以及 1×1 卷积
- 1.14 关于梯度检验实现的注记