一 简单应用

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之枚举之模拟枚举类型相关推荐

  1. 黑马程序员————高新技术————JDK1.5新特性

    ----------------------ASP.Net+Android+IOS开发----------------------期待与您交流! JDK1.5新特性 一:静态导入 l  Import语 ...

  2. JDK-1.5_新特性

    1.泛型(Generics) 泛型是JDK1.5中一个最"酷"的特征.通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出ClassCastExceptions的可能.在JD ...

  3. java基础知识总结:基础知识、面向对象、集合框架、多线程、jdk1.5新特性、IO流、网络编程

    目录 一.基础知识: 二.面向对象 三.集合框架 四.多线程: 五.jdk1.5的新特性 六.IO流 七.网络编程: 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtua ...

  4. JDK1.8 新特性(全)

    JDK1.8 新特性 本文主要介绍了JDK1.8版本中的一些新特性,乃作者视频观后笔记,仅供参考. jdk1.8新特性知识点: Lambda表达式 函数式接口 方法引用和构造器调用 Stream AP ...

  5. jdk1.8新特性的应用-Stream 的终止操作

    jdk1.8新特性的应用-Stream 的终止操作 public class TestStreamApi4 {List<Employee> emps = Arrays.asList(new ...

  6. jdk1.8新特性_Lambda表达式的引入

    jdk1.8新特性_Lambda表达式的引入 引入 需求: 获取工资大于20000的员工信息 public class Employee {private String name;private in ...

  7. java 1.7 可变参数,JDK1.7新特性(2):异常和可变长参数处理

    异常 jdk1.7对try--catch--finally的异常处理模式进行了增强,下面我们依次来看增强的方面. 1. 为了防止异常覆盖,给Throwable类增加了addSuppressed方法,可 ...

  8. JAVA day20、21 双列集合Map<K,V>:HashMap,LinkedHashMap,TreeMap,Hashtable, ConcurrentHashMap;JDK1.9新特性

    一.Map<K,V> Java提供了专⻔的集合类⽤来存放这种这种⼀⼀对应的关系,叫做映射对象,即 java.util.Map 接⼝. 类型参数: K - 此映射所维护的键的类型 V - 映 ...

  9. JDK1.6“新“特性Instrumentation之JavaAgent

    JDK1.6"新"特性Instrumentation之JavaAgent 文章目录 JDK1.6"新"特性Instrumentation之JavaAgent 简 ...

最新文章

  1. 【转】iOS实时卡顿监控
  2. 向量时钟算法简介——本质类似MVCC
  3. 删除vs中最近的项目的方法
  4. java rabbitmq 绑定_RabbitMQ:交换,队列和绑定 - 谁设置了什么?
  5. boost::outcome模块comparison相关的测试程序
  6. ViewPager+Fragment 组合的预加载和懒加载
  7. 2021年广东副高考试成绩查询,广东省中山市2021年高级会计师考试成绩可以查询了吗?...
  8. Linux 64位进程地址空间分布概况
  9. jqgrid columnChooser列的自定义及存储和获取
  10. css的animation动画
  11. 博为峰Java技术文章 ——JavaSE Swing焦点事件的处理
  12. 编译 mobileTerminal
  13. 计算机科学与技术概论,计算机科学与技术概论论文
  14. 模2除法(CRC校验码计算)模2除法和算数除法不同,文中例子120/13用模2除法结果:商11余数7,而算数除法结果:商9余数3
  15. 一个大型网站图片服务器架构的演进
  16. 【数学】三壶问题的一种通解
  17. 互联网赚钱:普通人月入上万的秘密,连载1
  18. java 消除png 锯齿_反转(移除)抗锯齿滤波器
  19. 人脸识别接口_人脸识别双模摄像头解析,免费搭配活体检测
  20. 为什么应对危机,企业倒闭比裁员好,裁员比降薪好?

热门文章

  1. mysql三高讲解(二):2.1 索引组织表
  2. C++socket编程(三):3.3 bind端口
  3. 一部分 数据 迁移_11项最佳实践,每次数据中心迁移都必不可少
  4. 杭电计算机研究院排名,2020浙江省大学最新10强排名,浙大第1,杭电第5
  5. php怎么调用dll例子,php调用dll的实例操作动画与代码分享_PHP教程
  6. h5获取http请求头_java学习之路(2),http协议,request类
  7. 用计算机用图解法求理论塔板数,用Excel图解法求精馏塔理论塔板数.pdf
  8. Flink watermark
  9. 2.5 网络中的网络以及 1×1 卷积
  10. 1.14 关于梯度检验实现的注记