激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java枚舉詳解及使用實例(涵蓋了所有典型用法)

Java枚舉詳解及使用實例(涵蓋了所有典型用法)

2019-12-17 13:40junjie JAVA教程

這篇文章主要介紹了Java枚舉詳解及使用實例(涵蓋了所有典型用法),本文直接給出實例代碼,代碼中包含詳細注釋,需要的朋友可以參考下

在實際編程中,往往存在著這樣的“數據集”,它們的數值在程序中是穩定的,而且“數據集”中的元素是有限的。

例如星期一到星期日七個數據元素組成了一周的“數據集”,春夏秋冬四個數據元素組成了四季的“數據集”。

在java中如何更好的使用這些“數據集”呢?因此枚舉便派上了用場,以下代碼詳細介紹了枚舉的用法。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
package com.ljq.test;
 
/**
 * 枚舉用法詳解
 *
 * @author jiqinlin
 *
 */
public class TestEnum {
  /**
   * 普通枚舉
   *
   * @author jiqinlin
   *
   */
  public enum ColorEnum {
    red, green, yellow, blue;
  }
  
  /**
   * 枚舉像普通的類一樣可以添加屬性和方法,可以為它添加靜態和非靜態的屬性或方法
   *
   * @author jiqinlin
   *
   */
  public enum SeasonEnum {
    //注:枚舉寫在最前面,否則編譯出錯
    spring, summer, autumn, winter;
 
    private final static String position = "test";
 
    public static SeasonEnum getSeason() {
      if ("test".equals(position))
        return spring;
      else
        return winter;
    }
  }
  
  /**
   * 性別
   *
   * 實現帶有構造器的枚舉
   *
   * @author jiqinlin
   *
   */
  public enum Gender{
    //通過括號賦值,而且必須帶有一個參構造器和一個屬性跟方法,否則編譯出錯
    //賦值必須都賦值或都不賦值,不能一部分賦值一部分不賦值;如果不賦值則不能寫構造器,賦值編譯也出錯
    MAN("MAN"), WOMEN("WOMEN");
    
    private final String value;
 
    //構造器默認也只能是private, 從而保證構造函數只能在內部使用
    Gender(String value) {
      this.value = value;
    }
    
    public String getValue() {
      return value;
    }
  }
  
  /**
  * 訂單狀態
  *
  * 實現帶有抽象方法的枚舉
  *
  * @author jiqinlin
  *
  */
  public enum OrderState {
    /** 已取消 */
    CANCEL {public String getName(){return "已取消";}},
    /** 待審核 */
    WAITCONFIRM {public String getName(){return "待審核";}},
    /** 等待付款 */
    WAITPAYMENT {public String getName(){return "等待付款";}},
    /** 正在配貨 */
    ADMEASUREPRODUCT {public String getName(){return "正在配貨";}},
    /** 等待發貨 */
    WAITDELIVER {public String getName(){return "等待發貨";}},
    /** 已發貨 */
    DELIVERED {public String getName(){return "已發貨";}},
    /** 已收貨 */
    RECEIVED {public String getName(){return "已收貨";}};
    
    public abstract String getName();
  }
  
  public static void main(String[] args) {
    //枚舉是一種類型,用于定義變量,以限制變量的賦值;賦值時通過“枚舉名.值”取得枚舉中的值
    ColorEnum colorEnum = ColorEnum.blue;
    switch (colorEnum) {
    case red:
      System.out.println("color is red");
      break;
    case green:
      System.out.println("color is green");
      break;
    case yellow:
      System.out.println("color is yellow");
      break;
    case blue:
      System.out.println("color is blue");
      break;
    }
    
    //遍歷枚舉
    System.out.println("遍歷ColorEnum枚舉中的值");
    for(ColorEnum color : ColorEnum.values()){
      System.out.println(color);
    }
    
    //獲取枚舉的個數
    System.out.println("ColorEnum枚舉中的值有"+ColorEnum.values().length+"個");
    
    //獲取枚舉的索引位置,默認從0開始
    System.out.println(ColorEnum.red.ordinal());//0
    System.out.println(ColorEnum.green.ordinal());//1
    System.out.println(ColorEnum.yellow.ordinal());//2
    System.out.println(ColorEnum.blue.ordinal());//3
    
    //枚舉默認實現了java.lang.Comparable接口
    System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1
    
    //--------------------------
    System.out.println("===========");
    System.err.println("季節為" + SeasonEnum.getSeason());
    
    
    //--------------
    System.out.println("===========");
    for(Gender gender : Gender.values()){
      System.out.println(gender.value);
    }
    
    //--------------
    System.out.println("===========");
    for(OrderState order : OrderState.values()){
      System.out.println(order.getName());
    }
  }
  
}

延伸 · 閱讀

精彩推薦
  • JAVA教程java使用listIterator逆序arraylist示例分享

    java使用listIterator逆序arraylist示例分享

    對于列表而言,除了Iterator,還提供了一個功能更加強大的ListIterator。它可以實現逆序遍歷列表中的元素。本示例將使用其逆序遍歷ArrayList ...

    java技術網1982019-11-11
  • JAVA教程第三方包jintellitype實現Java設置全局熱鍵

    第三方包jintellitype實現Java設置全局熱鍵

    本文主要介紹了,在java中使用第三方插件包jintellitype來實現全局熱鍵,非常的簡單,但是很實用,有需要的朋友可以參考下,歡迎一起來參與改進此項目...

    hebedich4242019-11-28
  • JAVA教程java解壓zip文件示例

    java解壓zip文件示例

    這篇文章主要介紹了java解壓zip文件示例,在獲得一個以Zip格式壓縮的文件之后,需要將其進行解壓縮,還原成壓縮前的文件,下面是代碼示例 ...

    java教程網2912019-11-12
  • JAVA教程Java中對AtomicInteger和int值在多線程下遞增操作的測試

    Java中對AtomicInteger和int值在多線程下遞增操作的測試

    這篇文章主要介紹了Java中對AtomicInteger和int值在多線程下遞增操作的測試,本文得出AtomicInteger操作 與 int操作的效率大致相差在50-80倍上下的結論,需要的朋友...

    junjie3912019-11-28
  • JAVA教程java解析xml之sax解析xml示例分享

    java解析xml之sax解析xml示例分享

    SAX基于事件的解析,解析器在一次讀取XML文件中根據讀取的數據產生相應的事件,由應用程序實現相應的事件處理邏輯,即它是一種“推”的解析方式;這...

    java技術網1852019-10-27
  • JAVA教程Java基礎之java處理ip的工具類

    Java基礎之java處理ip的工具類

    這篇文章主要介紹了Java基礎應用,使用java處理ip的工具類的相關資料,需要的朋友可以參考下 ...

    hebedich2182019-12-03
  • JAVA教程Java函數式編程(十二):監控文件修改

    Java函數式編程(十二):監控文件修改

    這篇文章主要介紹了Java函數式編程(十二):監控文件修改,本文是系列文章的第12篇,其它文章請參閱本文底部的相關文章,需要的朋友可以參考下 ...

    有孚4572019-12-01
  • JAVA教程淺談Java三目運算

    淺談Java三目運算

    本文給大家主要介紹的是java中三目運算的詳細介紹,并附上2個示例,希望對大家理解三目運算能夠有所幫助。 ...

    hebedich1922019-12-13
主站蜘蛛池模板: 一区二区三区四区视频在线观看 | 99欧美精品 | 91懂色| 精品三级内地国产在线观看 | 91精品国产91 | 在线看一区二区三区 | 免费永久看羞羞片网站入口 | 92看片淫黄大片欧美看国产片 | 高清国产免费 | 99久久精约久久久久久清纯 | 日本欧美一区二区三区在线播 | 在线播放av片 | 国产99久久精品一区二区300 | 美国一级黄色毛片 | 国产亚洲精品视频中文字幕 | 欧美aaaaa一级毛片在线 | 欧美日本在线视频 | 7777视频| 成人免费网站在线观看视频 | 亚洲第五色综合网 | 国产在线观看福利 | 中文在线观看免费视频 | 欧美自拍三区 | 中文字幕在线视频日本 | 91短视频在线免费观看 | 欧美日韩在线播放 | 天天操综 | 午夜神马电影网 | 国产午夜精品一区二区三区在线观看 | 激情夜色| 精品久久久久久中文字幕 | 精品国产九九九 | 国产一国产一级毛片视频 | 在线中文字幕不卡 | 国产一区毛片 | 久久影院免费观看 | 亚洲国产精品一区二区精品 | 久久99亚洲精品久久99果 | 久久久久日本精品一区二区三区 | 欧美女人天堂 | 欧美一区二区精品夜夜嗨 |