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

 

 

目录
相关文章
|
18天前
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
32 3
|
3天前
|
存储 安全 Java
JDK1.8 新的特性
JDK1.8 新的特性
10 0
|
23天前
|
编解码 安全 Java
jdk8新特性-接口和日期处理
jdk8新特性-接口和日期处理
|
2月前
|
Java API
JDK8到JDK25版本升级的新特性问题之使用Collectors.teeing()来计算一个列表中学生的平均分和总分如何操作
JDK8到JDK25版本升级的新特性问题之使用Collectors.teeing()来计算一个列表中学生的平均分和总分如何操作
|
2月前
|
Java API Apache
JDK8到JDK24版本升级的新特性问题之在Java中,HttpURLConnection有什么局限性,如何解决
JDK8到JDK24版本升级的新特性问题之在Java中,HttpURLConnection有什么局限性,如何解决
|
2月前
|
Oracle Java 关系型数据库
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
|
2月前
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
|
2月前
|
Java API 开发者
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
|
1月前
|
Java 编译器 API
JDK8新特性--lambda表达式
JDK8的Lambda表达式是Java语言的一大进步。它为Java程序提供了更多的编程方式,让代码更加简洁,也让函数式编程的概念在Java中得到了体现。Lambda表达式与Java 8的其他新特性,如Stream API、新的日期时间API一起,极大地提高了Java编程的效率和乐趣。随着时间的流逝,Java开发者对这些特性的理解和应用将会越来越深入,进一步推动Java语言和应用程序的发展。
10 0
|
2月前
|
算法 Java iOS开发
JDK8到JDK27版本升级的新特性问题之JDK 17中G1在资源占用方面有何变化
JDK8到JDK27版本升级的新特性问题之JDK 17中G1在资源占用方面有何变化