源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-08-29 11:10 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:基于java枚举类综合应用的说明
[b]如下面代码以交灯为示例: [/b]
[u]复制代码[/u] 代码如下:
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)方法可以将字符串转换成一个枚举。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部