zoukankan      html  css  js  c++  java
  • 枚举类综合应用

    一个枚举类,可以看成包括它的一些子类(枚举)的一个类,而且枚举类的构造方法只能是私有的,如下面代码以交灯为示例:

     1 public class Test {
     2 
     3     public static void main(String[] args) {
     4         Trafficlight light = Trafficlight.RED;
     5         
     6         System.out.println(light.time);
     7         System.out.println(light.nextLigth());
     8         // ordinal()方法返回枚举声明的顺序
     9         System.out.println(light.ordinal());
    10         // values()方法得到所有枚举类型的一个数组
    11         for(Trafficlight light1:light.values()){
    12             System.out.println(light1.name());
    13         }
    14         
    15         // valueOf()方法可以把字符串转换成相应的枚举对象
    16         System.out.println(light.RED ==light.valueOf("RED"));
    17     }
    18 
    19     public enum Trafficlight {
    20         GREEN(30) {
    21 
    22             @Override
    23             public Trafficlight nextLigth() {
    24                 return RED;
    25             }
    26         },
    27         RED(30) {
    28 
    29             @Override
    30             public Trafficlight nextLigth() {
    31                 return YELLOW;
    32             }
    33         },
    34         YELLOW(10) {
    35 
    36             @Override
    37             public Trafficlight nextLigth() {
    38                 return GREEN;
    39             }
    40         };
    41         public abstract Trafficlight nextLigth();
    42 
    43         private int time;
    44 
    45         // 构造方法
    46         private Trafficlight(int time) {
    47             this.time = time;
    48         }
    49         
    50         public int getTime(){
    51             return time;
    52         }
    53 
    54     }
    55 
    56 }

    代码中,可以看到GREEN,RED,YELLOW,分别是Trafficlight的一个子类,并作为它的成员变量。在Trafficlight有一个抽象方法nextLight(),在子类中是必须要实现的,所以@Override,另外它们也继承了父类的方法,所以可以调用父类的方法 getTiime(),由于父类Trafficlight中声明一个有参数的构造方法覆盖了无参的构造方法,所以构建子类时也必须要加上参数。

      代码中light只是相当于一个父类的实例,用它可以得到各个成员变量的子类,调用各种方法,valueOf(String)方法可以将字符串转换成一个枚举。

  • 相关阅读:
    20180925-2 功能测试
    【PL/SQL编程】循环语句
    【PL/SQL编程】条件语句
    【PL/SQL编程】变量和常量
    【PL/SQL编程】数据类型说明
    【PL/SQL编程】注释说明
    【PL/SQL编程】SQL与PL/SQL的区别
    【SQL查询】查询结果翻译成其他值_decode
    【SQL查询】日期的转换_to_date/to_char
    【SQL查询】视图_view
  • 原文地址:https://www.cnblogs.com/wn398/p/3061854.html
Copyright © 2011-2022 走看看