最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入淺出講解Java中的枚舉類

 更新時(shí)間:2021年09月13日 15:46:49   作者:威斯布魯克.猩猩  
這篇文章主要介紹了深入淺出講解Java中的枚舉類,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

背景:類的對(duì)象只有有限個(gè),確定的。舉例如下:
> 星期: Monday (星期一)、….、 Sunday (星期天)

> 性別: Man (男)、 Woman (女)
> 季節(jié): Spring (春節(jié)).…….. Winter (冬天)
> 支付方式: Cash (現(xiàn)金)、 WeChatPay (微信)、 Alipay (支付寶) BankCard (銀
行卡)、 CreditCard (信用卡)
> 就職狀態(tài): Busy 、 Free 、 Vocation 、 Dimission
> 訂單狀態(tài): Nonpayment (未付款)、 Paid (已付款)、 Fulfilled (已配貨)、
Delivered (已發(fā)貨)、 Return 退貨》 Checked 已確認(rèn))

> 線程狀態(tài):創(chuàng)建、就緒、運(yùn)行、阻塞、死立

一、枚舉類的使用

1.枚舉類的理解:類的對(duì)象只有有限個(gè),確定的。我們稱此類為枚舉類
2.當(dāng)需要定義一組常量時(shí),強(qiáng)烈建議使用枚舉類
3.如果枚舉類中只有一個(gè)對(duì)象,則可以作為單例模式的實(shí)現(xiàn)方式。

二、如何定義枚舉類

方式一:JDK5.0之前,自定義枚舉類

public class SeasonTest {
    public static void main(String[] args) {
        Season spring = Season.SPRING;
        System.out.println(spring);
    }
}
    class Season {
        //1.聲明Season對(duì)象的屬性:private final修飾
        private final String seasonName;
        private final String seasonDesc;
        //2.私有化類的構(gòu)造器,并給對(duì)象屬性賦值
        private Season(String seasonName, String seasonDesc) {
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }
        //3.提供當(dāng)前枚舉類的對(duì)各對(duì)象:public static final的
        public static final Season SPRING = new Season("春天", "春暖花開");
        public static final Season SUMMER = new Season("夏天", "夏日炎炎");
        public static final Season AUTUMN = new Season("秋天", "秋高氣爽");
        public static final Season WINTER = new Season("冬天", "冰天雪地");
        //4.其他訴求1:  獲取枚舉類對(duì)象的屬性
        public String getSeasonName() {
            return seasonName;
        }
        public String getSeasonDesc() {
            return seasonDesc;
        }
        //4.其他訴求2:提供toString()
        @Override
        public String toString() {
            return "Season{" +
                    "seasonName='" + seasonName + '\'' +
                    ", seasonDesc='" + seasonDesc + '\'' +
                    '}';
        }
    }

方式二:JDK5.0之后,可以使用enum關(guān)鍵字定義枚舉類

public class SeasonTest1 {
    public static void main(String[] args) {
        Season1 summer = Season1.SUMMER;
        System.out.println(summer);
        System.out.println(Season1.class.getSuperclass());//java.lang.Enum
        //values():
        Season1[] values = Season1.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println(values[i]);
        }
        //valueOf(String objName):返回枚舉類中對(duì)象時(shí)objName的對(duì)象。
        Season1 winter = Season1.valueOf("WINTER");
        //如果沒有objName的枚舉類對(duì)象,則拋異常:IllegalArgumentException
//        Season1 winter = Season1.valueOf("WINTER1");
        System.out.println(winter);
//        winter.show();
    }
    //使用enum關(guān)鍵字定義枚舉類
    enum Season1 {
        //1.提供當(dāng)前枚舉類的對(duì)象,多個(gè)對(duì)象之間用","隔開,末尾對(duì)象";"結(jié)束
        SPRING("春天", "春暖花開"),
        SUMMER("夏天", "夏日炎炎"),
        AUTUMN("秋天", "秋高氣爽"),
        WINTER("冬天", "冰天雪地");
        //1.聲明Season對(duì)象的屬性:private final修飾
        private final String seasonName;
        private final String seasonDesc;
 
        //2.私有化類的構(gòu)造器,并給對(duì)象屬性賦值
        private Season1(String seasonName, String seasonDesc) {
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }
        //4.其他訴求1:  獲取枚舉類對(duì)象的屬性
        public String getSeasonName() {
            return seasonName;
        }
        public String getSeasonDesc() {
            return seasonDesc;
        }

使用enum關(guān)鍵字定義的枚舉類實(shí)現(xiàn)接口的情況
情況一:實(shí)現(xiàn)接口,在enum類中實(shí)現(xiàn)抽象方法

情況二:讓枚舉類的對(duì)象分別實(shí)現(xiàn)接口中的抽象方法

public class SeasonTest1 {
    public static void main(String[] args) {
        //values():
        Season1[] values = Season1.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println(values[i]);
            values[i].show();
        }
    }
    interface Info {
        void show();
    }
    enum Season1 implements Info {
        SPRING("春天", "春暖花開") {
            @Override
            public void show() {
                System.out.println("春天在哪里");
            }
        },
        SUMMER("夏天", "夏日炎炎") {
            @Override
            public void show() {
                System.out.println("寧夏");
            }
        },
        AUTUMN("秋天", "秋高氣爽") {
            @Override
            public void show() {
                System.out.println("秋天不回來");
            }
        },
        WINTER("冬天", "冰天雪地") {
            @Override
            public void show() {
                System.out.println("大約在冬季");
            }
        };
        private final String seasonName;
        private final String seasonDesc;
        private Season1(String seasonName, String seasonDesc) {
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }
        public String getSeasonName() {
            return seasonName;
        }
        public String getSeasonDesc() {
            return seasonDesc;
        }
}

到此這篇關(guān)于深入淺出講解Java中的枚舉類的文章就介紹到這了,更多相關(guān)Java 枚舉類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Security使用權(quán)限注解實(shí)現(xiàn)精確控制

    Spring Security使用權(quán)限注解實(shí)現(xiàn)精確控制

    在現(xiàn)代的應(yīng)用系統(tǒng)中,權(quán)限管理是確保系統(tǒng)安全性的重要環(huán)節(jié),Spring Security作為Java世界最為普及的安全框架,提供了強(qiáng)大而靈活的權(quán)限控制功能,這篇文章將深入探討Spring Security使用權(quán)限注解實(shí)現(xiàn)精確控制,需要的朋友可以參考下
    2024-12-12
  • Java通過導(dǎo)出超大Excel文件解決內(nèi)存溢出問題

    Java通過導(dǎo)出超大Excel文件解決內(nèi)存溢出問題

    導(dǎo)出excel是咱Java開發(fā)的必備技能,下面這篇文章主要給大家介紹了關(guān)于Java通過導(dǎo)出超大Excel文件解決內(nèi)存溢出問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • Java 利用枚舉實(shí)現(xiàn)接口進(jìn)行統(tǒng)一管理

    Java 利用枚舉實(shí)現(xiàn)接口進(jìn)行統(tǒng)一管理

    這篇文章主要介紹了Java 利用枚舉實(shí)現(xiàn)接口進(jìn)行統(tǒng)一管理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 解決執(zhí)行maven命令時(shí)提示Process terminated的問題

    解決執(zhí)行maven命令時(shí)提示Process terminated的問題

    這篇文章主要介紹了解決執(zhí)行maven命令時(shí)提示Process terminated的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java.io.EOFException產(chǎn)生原因及解決方法(附代碼)

    java.io.EOFException產(chǎn)生原因及解決方法(附代碼)

    java.io.EOFException表示在讀取數(shù)據(jù)時(shí)突然遇到了文件或流的末尾,也就是說客戶端或服務(wù)器已經(jīng)關(guān)閉了連接,但是你還在嘗試讀取數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于java.io.EOFException產(chǎn)生原因及解決的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • springboot項(xiàng)目組引入JMeter的實(shí)現(xiàn)步驟

    springboot項(xiàng)目組引入JMeter的實(shí)現(xiàn)步驟

    本文主要介紹了springboot項(xiàng)目組引入JMeter的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • spring 聲明式事務(wù)實(shí)現(xiàn)過程解析

    spring 聲明式事務(wù)實(shí)現(xiàn)過程解析

    這篇文章主要介紹了spring 聲明式事務(wù)實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java實(shí)現(xiàn)文件批量重命名,移動(dòng)和刪除

    Java實(shí)現(xiàn)文件批量重命名,移動(dòng)和刪除

    這篇文章主要為大家介紹了如何利用Java語言實(shí)現(xiàn)批量重命名,批量移動(dòng)文件,批量刪除tmp文件等功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08
  • Spring事務(wù)管理中的異?;貪L是什么

    Spring事務(wù)管理中的異?;貪L是什么

    Spring中的代碼出現(xiàn)異常時(shí)會(huì)回滾這是大家都希望的情況,這時(shí)候可以用@Transactional這個(gè)注解放在你的方法上來進(jìn)行回滾,這時(shí)候有個(gè)問題就是事務(wù)回滾是不希望你在Controller進(jìn)行處理,而是在Service層來進(jìn)行處理
    2023-02-02
  • SpringBoot actuator 健康檢查不通過的解決方案

    SpringBoot actuator 健康檢查不通過的解決方案

    這篇文章主要介紹了SpringBoot actuator 健康檢查不通過的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評(píng)論

海晏县| 汕头市| 从江县| 瑞昌市| 都昌县| 五家渠市| 宽甸| 乌兰县| 磐安县| 安塞县| 石棉县| 利川市| 梨树县| 盐山县| 海阳市| 武川县| 柘城县| 屏南县| 朝阳市| 富阳市| 蒙城县| 连南| 大城县| 吉木萨尔县| 永登县| 尤溪县| 海安县| 长沙市| 孟津县| 汉源县| 措美县| 新丰县| 凭祥市| 温泉县| 安塞县| 巴东县| 武汉市| 章丘市| 方正县| 永新县| 长垣县|