<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    學習筆記

    Simple is beautiful.

    導航

    <2007年11月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    統計

    公告

    ...

    常用鏈接

    留言簿(1)

    隨筆分類(2)

    隨筆檔案(56)

    Weblog

    搜索

    最新評論

    評論排行榜

    [z] JDK5.0中的enum

    在像C這樣強調數據結構的語言里,枚舉是必不可少的一種數據類型。然而在java的早期版本中,是沒有一種叫做enum的獨立數據結構的。所以在以前的java版本中,我們經常使用interface來simulate一個enum。
    java 代碼
    1. public interface Color {   
    2.     static int RED   = 1;   
    3.     static int GREEN     = 2;   
    4.     static int BLUE = 3;   
    5. }  

    雖然這種simulation比較麻煩,但在以前也還應付的過去??墒请S著java語言的發展,越來越多的呼聲要求把enum這種數據結構獨立出來,加入到java中。所以從java 1.5以后,就有了enum,這也是這篇blog要學習的topic。

    學習的最好方式就是例子,先來一個:

    java 代碼
    1. public class EnumDemo {   
    2.     private enum Color {red, blue, green}           //there is not a ";"   
    3.        
    4.     public static void main(String[] args) {   
    5.         for(Color s : Color.values()) {   
    6.             //enum的values()返回一個數組,這里就是Seasons[]   
    7.              System.out.println(s);   
    8.          }   
    9.      }   
    10. }  
    console results
    1. red   
    2. blue   
    3. green  

    注意事項已經在code中注釋出,還要說明一點的是,這個java文件編譯完成后不只有一個EnumDemo.class,還會有一個EnumDemo$Color.class,奇怪吧!

    Another e.g.

    java 代碼
    1. public class EnumDemo {   
    2.     private enum Color {red, blue, green}           //there is not a ";"   
    3.        
    4.     public static void main(String[] args) {   
    5.          Color s = Color.blue;   
    6.            
    7.         switch (s) {   
    8.         case red:                     //notice: Color.red will lead to compile error   
    9.              System.out.println("red case");   
    10.             break;   
    11.         case blue:   
    12.              System.out.println("blue case");   
    13.             break;   
    14.         case green:   
    15.              System.out.println("green case");   
    16.             break;   
    17.         default:   
    18.             break;   
    19.          }   
    20.      }   
    21. }  

    這個例子要說明的就是case的情況。

    就這么多嗎,當然不是,我們的enum結構還可以定義自己的方法和屬性。

    java 代碼
    1. public class EnumDemo {   
    2.     private enum Color {   
    3.          red, blue, green;                          //there is a ";"   
    4.            
    5.         //notic: enum's method should be "static"   
    6.         public static Color getColor(String s){   
    7.             if(s.equals("red flag")){   
    8.                 return red;   
    9.              } else if(s.equals("blue flag")){   
    10.                 return blue;   
    11.              } else {   
    12.                 return green;   
    13.              }   
    14.          }   
    15.      }          //there is not ";"   
    16.        
    17.     public static void main(String[] args) {   
    18.          EnumDemo demo = new EnumDemo();   
    19.          System.out.println(demo.getFlagColor("red flag"));   
    20.      }   
    21.        
    22.     public Color getFlagColor(String string){   
    23.         return Color.getColor(string);   
    24.      }   
    25. }  

    posted on 2007-11-10 16:13 Ecko 閱讀(477) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品成人| 97在线观免费视频观看| 亚洲国产精品视频| 免费大片av手机看片| 国产免费av片在线播放| 四虎永久在线精品免费一区二区| 国产男女猛烈无遮挡免费网站| jizzjizz亚洲日本少妇| 亚洲av再在线观看| 中文字幕永久免费| 亚洲AV美女一区二区三区| 亚洲精品国产免费| 亚洲人成人无码.www石榴 | 2019中文字幕在线电影免费| 亚洲成av人片在线看片| 波多野结衣免费在线观看| 亚洲国产av高清无码| 日韩激情淫片免费看| 九九免费精品视频在这里| 亚洲综合另类小说色区| 午夜免费啪视频在线观看| 亚洲性色高清完整版在线观看| 搡女人免费视频大全| 四虎国产精品成人免费久久| 久久精品国产69国产精品亚洲| 无码AV片在线观看免费| 亚洲国产乱码最新视频| 亚洲国产一区二区三区| 久久久久国产精品免费免费不卡 | 久久99精品免费一区二区| 亚洲av无码潮喷在线观看| 国产成人免费网站| 污视频网站免费观看| 亚洲福利在线观看| 国产精品免费_区二区三区观看| 中文字幕免费在线看| 亚洲免费福利在线视频| 亚洲韩国精品无码一区二区三区| 成人免费毛片内射美女-百度| 黄页网站在线免费观看| 久久精品国产亚洲AV无码麻豆 |