程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 基於java枚舉類綜合應用的說明

基於java枚舉類綜合應用的說明

編輯:JAVA編程入門知識

如下面代碼以交燈為示例:
代碼如下:

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)方法可以將字符串轉換成一個枚舉。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved