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之枚举之模拟枚举类型》

本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1059803如需转载请自行联系原作者


woshixuye111

相关文章
|
1月前
|
安全 JavaScript 前端开发
JDK1.8的重要的新特性与功能
Java Development Kit (JDK) 1.8,也称为Java 8,是Java平台的一个重大更新,于2014年3月发布。它引入了多项新特性、新的API和性能提升
72 3
|
2月前
|
监控 安全 Java
探索Java的未来:JDK 18新特性全览
探索Java的未来:JDK 18新特性全览
75 0
|
2月前
|
缓存 安全 Java
JDK 14全景透视:每个Java开发者必知的新特性
JDK 14全景透视:每个Java开发者必知的新特性
51 0
|
2月前
|
JavaScript 前端开发 安全
Java新纪元:一探JDK 15的全新特性
Java新纪元:一探JDK 15的全新特性
45 0
|
2月前
|
JSON Java API
探秘JDK 13的黑科技:新特性一览
探秘JDK 13的黑科技:新特性一览
47 0
|
2月前
|
Java 测试技术 API
深度剖析JDK 11全新特性:编程艺术的巅峰之作
深度剖析JDK 11全新特性:编程艺术的巅峰之作
43 0
|
2月前
|
存储 Java 数据管理
探秘JDK 10:崭新特性悉数解析
探秘JDK 10:崭新特性悉数解析
30 0
|
2月前
|
JSON 编解码 Java
Java升级:JDK 9新特性全面解析“
Java升级:JDK 9新特性全面解析“
42 0
|
2月前
|
并行计算 Java 程序员
深入解析JDK 8中的Lambda表达式:新特性的力量
本文将深入探讨JDK 8中引入的最引人注目的新特性之一:Lambda表达式。我们将详细解析Lambda表达式的概念、语法和用途,并通过实际示例展示如何利用Lambda表达式简化代码和提高编程效率。
|
2月前
|
SQL 人工智能 运维
JDK8 — 17特性
JDK8 — 17特性
57 0
JDK8 — 17特性