当前位置: 移动技术网 > IT编程>开发语言>Java > 基于java枚举类综合应用的说明

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

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

复制代码 代码如下:

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网