基于java枚举类综合应用的说明

 更新时间:2013年05月06日 09:36:10   作者:  
一个枚举类,可以看成包括它的一些子类(枚举)的一个类,而且枚举类的构造方法只能是私有的

如下面代码以交灯为示例:

复制代码 代码如下:

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)方法可以将字符串转换成一个枚举。

相关文章

  • 浅谈Java的String中的subString()方法

    浅谈Java的String中的subString()方法

    下面小编就为大家带来一篇浅谈Java的String中的subString()方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 解决mybatis plus字段为null或空字符串无法保存到数据库的问题

    解决mybatis plus字段为null或空字符串无法保存到数据库的问题

    这篇文章主要介绍了解决mybatis plus字段为null或空字符串无法保存到数据库的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 二叉排序树的实现与基本操作

    二叉排序树的实现与基本操作

    二叉排序树又称二叉查找树。本文主要对二叉排序树的实现与基本操作进行详细介绍,以下代码实现了:1、二叉树的构建;2、二叉树的中、前、后、层序遍历;3、二叉树中结点的最大距离。下面就跟着小编一起来看下吧
    2016-12-12
  • 玩转spring boot 结合AngularJs和JDBC(4)

    玩转spring boot 结合AngularJs和JDBC(4)

    玩转spring boot,这篇文章主要介绍了结合AngularJs和JDBC,玩转spring boot,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • idea搭建SSM框架遇踩的坑(附完整过程)

    idea搭建SSM框架遇踩的坑(附完整过程)

    最近准备搭建一个SSM框架,由于很久没有搭建了,一来就遇到各种问题,折腾了一天终于搞定了,特此记录一下遇到的问题,下面这篇文章主要给大家介绍了关于idea搭建SSM框架遇踩的坑,文中还附完整过程,需要的朋友可以参考下
    2023-04-04
  • Spring Cloud Gateway重试机制原理解析

    Spring Cloud Gateway重试机制原理解析

    这篇文章主要介绍了Spring Cloud Gateway重试机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Spring Boot结合IDEA自带Maven插件如何快速切换profile

    Spring Boot结合IDEA自带Maven插件如何快速切换profile

    IDEA是目前 Java 开发者中使用最多的开发工具,它有着简约的设计风格,强大的集成工具,便利的快捷键,这篇文章主要介绍了Spring Boot结合IDEA自带Maven插件快速切换profile,需要的朋友可以参考下
    2023-03-03
  • Java Vector类详解及实例代码

    Java Vector类详解及实例代码

    这篇文章主要介绍了Java Vector类详解及实例代码的相关资料,需要的朋友可以参考下
    2017-01-01
  • maven repository详解

    maven repository详解

    这篇文章主要介绍了maven repository的相关知识,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • Java下载文件的四种方式详细代码

    Java下载文件的四种方式详细代码

    这篇文章介绍了Java下载文件的四种方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12

最新评论