国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中枚舉的使用詳解

2019-11-26 14:02:09
字體:
來源:轉載
供稿:網友

枚舉簡介: 

為什么要用枚舉:

    枚舉是Java1.5出來之后新增的類型,它可以用來定義一組取值范圍固定的的變量。

    在枚舉沒有出來之前,要定義這樣的變量,往往是通過定義一個接口,將不同的變量

    使用不同的整數賦值。但是這樣的卻有著很明顯的缺點:

        1.不能保證其定義數值的合法性;

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

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

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

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;elsereturn 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());//0System.out.println(ColorEnum.green.ordinal());//1System.out.println(ColorEnum.yellow.ordinal());//2System.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());}}}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安国市| 莱阳市| 阆中市| 牙克石市| 浦江县| 右玉县| 射洪县| 凤台县| 宁陕县| 清河县| 马山县| 札达县| 犍为县| 乌鲁木齐市| 宜川县| 贵阳市| 岱山县| 内江市| 镇赉县| 洱源县| 鄯善县| 筠连县| 大丰市| 马山县| 察雅县| 德江县| 德昌县| 余干县| 鄂温| 大理市| 莫力| 漳浦县| 湖口县| 凉城县| 固原市| 乐陵市| 龙里县| 高碑店市| 新郑市| 麻阳| 永济市|