亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

背景:類的對象只有有限個,確定的。舉例如下:
> 星期: 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)建、就緒、運行、阻塞、死立

一、枚舉類的使用

1.枚舉類的理解:類的對象只有有限個,確定的。我們稱此類為枚舉類
2.當(dāng)需要定義一組常量時,強烈建議使用枚舉類
3.如果枚舉類中只有一個對象,則可以作為單例模式的實現(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對象的屬性:private final修飾
        private final String seasonName;
        private final String seasonDesc;
        //2.私有化類的構(gòu)造器,并給對象屬性賦值
        private Season(String seasonName, String seasonDesc) {
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }
        //3.提供當(dāng)前枚舉類的對各對象: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:  獲取枚舉類對象的屬性
        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):返回枚舉類中對象時objName的對象。
        Season1 winter = Season1.valueOf("WINTER");
        //如果沒有objName的枚舉類對象,則拋異常:IllegalArgumentException
//        Season1 winter = Season1.valueOf("WINTER1");
        System.out.println(winter);
//        winter.show();
    }
    //使用enum關(guān)鍵字定義枚舉類
    enum Season1 {
        //1.提供當(dāng)前枚舉類的對象,多個對象之間用","隔開,末尾對象";"結(jié)束
        SPRING("春天", "春暖花開"),
        SUMMER("夏天", "夏日炎炎"),
        AUTUMN("秋天", "秋高氣爽"),
        WINTER("冬天", "冰天雪地");
        //1.聲明Season對象的屬性:private final修飾
        private final String seasonName;
        private final String seasonDesc;
 
        //2.私有化類的構(gòu)造器,并給對象屬性賦值
        private Season1(String seasonName, String seasonDesc) {
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }
        //4.其他訴求1:  獲取枚舉類對象的屬性
        public String getSeasonName() {
            return seasonName;
        }
        public String getSeasonDesc() {
            return seasonDesc;
        }

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

情況二:讓枚舉類的對象分別實現(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用java代碼代替xml實現(xiàn)SSM教程

    使用java代碼代替xml實現(xiàn)SSM教程

    這篇文章主要介紹了使用java代碼代替xml實現(xiàn)SSM教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java?超詳細(xì)講解對象的構(gòu)造及初始化

    Java?超詳細(xì)講解對象的構(gòu)造及初始化

    面向?qū)ο竽耸荍ava語言的核心,是程序設(shè)計的思想。Java語言的面向?qū)ο蠹夹g(shù)包括了面向?qū)ο蠛兔嫦蜻^程的基本概念,面向?qū)ο蟮奶卣?,Java語言的類,對象,修飾符,抽象類等一系列的知識點
    2022-03-03
  • Java使用poi包讀取Excel文檔代碼分享

    Java使用poi包讀取Excel文檔代碼分享

    這篇文章主要介紹了Java使用poi包讀取Excel文檔代碼分享,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Java中的TreeMap底層源碼分析

    Java中的TreeMap底層源碼分析

    這篇文章主要介紹了Java中的TreeMap底層源碼分析,TreeMap與Hashmap、LinkedHashMap不同,他的底層不再是數(shù)組,而是一顆紅黑樹,在插入、刪除或者替換元素時,TreeMap能按照事先約定的順序來對key進(jìn)行排序和迭代查詢,需要的朋友可以參考下
    2023-12-12
  • Mybatis圖文并茂講解分頁插件

    Mybatis圖文并茂講解分頁插件

    使用過mybatis的人都知道,mybatis本身就很小且簡單,sql寫在xml里,統(tǒng)一管理和優(yōu)化。缺點當(dāng)然也有,比如我們使用過程中,要使用到分頁,如果用最原始的方式的話,1.查詢分頁數(shù)據(jù),2.獲取分頁長度,也就是說要使用到兩個方法才能完成分頁
    2022-07-07
  • SpringMVC中解決@ResponseBody注解返回中文亂碼問題

    SpringMVC中解決@ResponseBody注解返回中文亂碼問題

    這篇文章主要介紹了SpringMVC中解決@ResponseBody注解返回中文亂碼問題, 小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 淺析Jmeter多用戶token使用問題

    淺析Jmeter多用戶token使用問題

    這篇文章主要介紹了Jmeter多用戶token使用問題,通過具體的例子給大家介紹了Jmeter多用戶token使用場景接口分析,需要的朋友可以參考下
    2021-10-10
  • 啟動 Eclipse 彈出 Failed to load the JNI shared library jvm.dll 錯誤的解決方法

    啟動 Eclipse 彈出 Failed to load the JNI shared library jvm.dll

    這篇文章主要介紹了有時候,新電腦上回碰到打開Eclipse時,彈出提示“Failed to load the JNI shared library jvm.dll”錯誤,這里給大家分享解決方案
    2016-08-08
  • 淺談java的byte數(shù)組的不同寫法

    淺談java的byte數(shù)組的不同寫法

    下面小編就為大家?guī)硪黄獪\談java的byte數(shù)組的不同寫法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Java獲取兩個字符串中最大相同子串的方法

    Java獲取兩個字符串中最大相同子串的方法

    今天小編就為大家分享一篇Java獲取兩個字符串中最大相同子串的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論