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

Java中枚舉的使用方法詳解

 更新時(shí)間:2023年07月15日 09:02:38   作者:信橙則靈  
這篇文章主要介紹了Java中枚舉的使用方法詳解,比如我們想聲明一組季節(jié)的集合,那這里面最多有四種,即春夏秋冬,不允許有其他的季節(jié),那為了實(shí)現(xiàn)這種限制,體現(xiàn)出季節(jié)是固定的四個(gè)對(duì)象,我們可以使用枚舉,需要的朋友可以參考下

枚舉介紹(enumeration)

枚舉:把具體的對(duì)象一個(gè)個(gè)的列舉出來(lái)的類(lèi),稱(chēng)為枚舉類(lèi)。

枚舉對(duì)應(yīng)的是一組常量的集合枚舉屬于一種特殊的類(lèi),里面只包含一組有限的特點(diǎn)的對(duì)象。

解釋?zhuān)罕热缥覀兿肼暶饕唤M季節(jié)的集合,那這里面最多有四種,即春夏秋冬,不允許有其他的季節(jié),那為了實(shí)現(xiàn)這種限制,體現(xiàn)出季節(jié)是固定的四個(gè)對(duì)象,我們可以使用枚舉。

在這里插入圖片描述

枚舉的實(shí)現(xiàn)方式

自定義類(lèi)實(shí)現(xiàn)枚舉

1、將構(gòu)造器私有化(私有化即private),目的是為了防止,直接new對(duì)象
2、去掉set相關(guān)的方法,防止屬性被修改
3、在類(lèi)的內(nèi)部創(chuàng)建固定的對(duì)象;
4、優(yōu)化,添加final修飾符,實(shí)現(xiàn)底層優(yōu)化。

在這里插入圖片描述

  • 構(gòu)造器私有化(private)
  • 本類(lèi)內(nèi)部創(chuàng)建一組對(duì)象[春、夏、秋、冬]
  • 對(duì)外暴露對(duì)象(通過(guò)為對(duì)象添加public final static修飾符)
  • 可以提供get方法,不能提供set方法(不允許進(jìn)行屬性的修改)
package com.zhangch.enum_;
public class Enumeration02 {
    public static void main(String[] args) {
        Season spring = Season.SPRING;
        System.out.println(spring);
    }
}
class Season{
    private String name;
    private String desc;
    // 3、通過(guò)static final 方法,對(duì)外暴露對(duì)象
    public static final Season SPRING = new Season("春", "陽(yáng)光明媚");
    public static final Season SUMMER = new Season("夏", "炎熱");
    // 1、構(gòu)造器私有化
    private Season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }
    // 2、取消set方法,防止對(duì)屬性進(jìn)行修改
    public String getDesc() {
        return desc;
    }
    public String getName() {
        return name;
    }
    @Override
    public String toString() {
        return "Season{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
}

enum關(guān)鍵字實(shí)現(xiàn)枚舉

1、將類(lèi)的聲明關(guān)鍵字從 class 替換為 enum
2、聲明枚舉常量對(duì)象的格式為: SPRING(“春天”, “溫暖”) → 常量名(參數(shù)列表);
其實(shí)enum相當(dāng)于講對(duì)象的聲明簡(jiǎn)化了:

SUMMER(“夏天”, “炎熱”); 等同于:public static final Season SUMMER = new Season(“夏”, “炎熱”);

在這里插入圖片描述

3、如果聲明多個(gè)枚舉常量(對(duì)象),則使用 逗號(hào) 進(jìn)行隔開(kāi);

4、如果使用enum實(shí)現(xiàn)枚舉,要求將定義的常量對(duì)象,寫(xiě)在對(duì)象最前面。

package com.zhangch.enum_;
/**
 * @author zhangch
 * @version 1.0
 */
public class Enumeration01 {
    public static void main(String[] args) {
        System.out.println(Season.SPRING);
    }
}
// 演示自定義枚舉
enum Season{
    // 1、使用enum關(guān)鍵字替換class
    // 2、聲明枚舉常量對(duì)象的方式: SPRING("夏天", "炎熱") -->  常量名(參數(shù)列表)
    // 3、如果有多個(gè)常量(對(duì)象),使用逗號(hào)隔開(kāi)
    // 4、如果使用enum實(shí)現(xiàn)枚舉,要求將定義的常量對(duì)象,寫(xiě)在對(duì)象前面。
    SPRING("春天", "溫暖"), SUMMER("夏天", "炎熱");
    private String name;
    private String desc;
    private Season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }
    public String getName() {
        return name;
    }
    public String getDesc() {
        return desc;
    }
    @Override
    public String toString() {
        return "Season{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
}

注意細(xì)節(jié)

1、當(dāng)我們使用enum關(guān)鍵字修飾類(lèi)的時(shí)候,默認(rèn)匯集成Enum類(lèi),而且是一個(gè)final類(lèi),可通過(guò)javap進(jìn)行反編譯(class文件到j(luò)ava文件)來(lái)進(jìn)行查看 (javac為編譯java文件到class文件)

在這里插入圖片描述

2、當(dāng)我們使用 無(wú)參構(gòu)造器 創(chuàng)建 枚舉常量對(duì)象 時(shí),則實(shí)參列表和小括號(hào)均可以省略;

在這里插入圖片描述

3、當(dāng)有多個(gè)枚舉對(duì)象時(shí),使用 逗號(hào) 進(jìn)行分隔, 最后使用 分號(hào) 進(jìn)行結(jié)尾

4、枚舉對(duì)象必須放在枚舉類(lèi)的行首。

enum常用方法說(shuō)明

1、使用關(guān)鍵字enum時(shí),會(huì)隱式的繼承Enum類(lèi),這樣我們就可以使用Enum里面的方法

在這里插入圖片描述

valueOf: 將枚舉常量的名稱(chēng) 作為參數(shù) 傳遞給枚舉對(duì)象 ,找到后會(huì)返回與參數(shù)匹配的枚舉常量。

Season value = Season.valueOf("SPRING");System.out.println(value);

ordinal: 得到當(dāng)前枚舉常量的編號(hào),默認(rèn)從 0 開(kāi)始;即方法values返回的下標(biāo)。

name:得到當(dāng)前枚舉常量的名稱(chēng),建議使用 toString() 方法

compareTo:比較兩個(gè)枚舉常量的大小,使用枚舉常量的編號(hào)相減的方式獲取對(duì)應(yīng)的大小。如果為0,則證明相等。

values: 返回當(dāng)前枚舉類(lèi)中的所有枚舉常量;

使用注意

使用enum關(guān)鍵字后,該類(lèi)就不能再繼承其他類(lèi)了(單繼承機(jī)制),但是,仍然可以使用接口繼承

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

相關(guān)文章

  • 淺談Java垃圾回收機(jī)制

    淺談Java垃圾回收機(jī)制

    這篇文章主要介紹了淺談Java垃圾回收機(jī)制,文中有非常詳細(xì)的圖文示例及代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Spring Boot2與Spring Boot3的區(qū)別小結(jié)

    Spring Boot2與Spring Boot3的區(qū)別小結(jié)

    SpringBoot2和SpringBoot3之間有一些重要的區(qū)別,本文就來(lái)探討SpringBoot2和SpringBoot3之間的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • SpringBoot?jackson提供對(duì)LocalDate的支持方式

    SpringBoot?jackson提供對(duì)LocalDate的支持方式

    這篇文章主要介紹了SpringBoot?jackson提供對(duì)LocalDate的支持方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • MybatisPlus中插入數(shù)據(jù)后獲取該對(duì)象主鍵值的實(shí)現(xiàn)

    MybatisPlus中插入數(shù)據(jù)后獲取該對(duì)象主鍵值的實(shí)現(xiàn)

    這篇文章主要介紹了MybatisPlus中插入數(shù)據(jù)后獲取該對(duì)象主鍵值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java利用POI讀取excel文件的方法

    java利用POI讀取excel文件的方法

    這篇文章主要介紹了java利用POI讀取excel文件的方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-12-12
  • Java ArrayAdapter用法案例詳解

    Java ArrayAdapter用法案例詳解

    這篇文章主要介紹了Java ArrayAdapter用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 2022?最新?IntelliJ?IDEA?詳細(xì)配置步驟演示(推薦)

    2022?最新?IntelliJ?IDEA?詳細(xì)配置步驟演示(推薦)

    作為一名開(kāi)發(fā)人員,第一肯定是選擇一款趁手的開(kāi)發(fā)利器,本人使用?Java?偏多,這里推薦使用?IntelliJ?IDEA,?俗稱(chēng)神級(jí)開(kāi)發(fā)工具,具體的安裝過(guò)程就不過(guò)多贅述了,有需要了解的朋友可以參考下本文
    2022-09-09
  • springboot中的springSession的存儲(chǔ)和獲取實(shí)現(xiàn)

    springboot中的springSession的存儲(chǔ)和獲取實(shí)現(xiàn)

    這篇文章主要介紹了springboot中的springSession的存儲(chǔ)和獲取實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Spring Boot從Controller層進(jìn)行單元測(cè)試的實(shí)現(xiàn)

    Spring Boot從Controller層進(jìn)行單元測(cè)試的實(shí)現(xiàn)

    這篇文章主要介紹了Spring Boot從Controller層進(jìn)行單元測(cè)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Java實(shí)現(xiàn)的可選擇及拖拽圖片的面板功能【基于swing組件】

    Java實(shí)現(xiàn)的可選擇及拖拽圖片的面板功能【基于swing組件】

    這篇文章主要介紹了Java實(shí)現(xiàn)的可選擇及拖拽圖片的面板功能,涉及java基于swing組件選擇與操作圖片元素的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01

最新評(píng)論

利辛县| 静海县| 光山县| 上思县| 通江县| 都昌县| 湾仔区| 宝山区| 乐陵市| 都昌县| 澄城县| 南充市| 尤溪县| 论坛| 莱西市| 铜山县| 伊金霍洛旗| 眉山市| 缙云县| 崇州市| 广丰县| 昌平区| 祁门县| 淮北市| 遂川县| 洛扎县| 苍南县| 永仁县| 高清| 鞍山市| 贵溪市| 闵行区| 东城区| 大方县| 林周县| 安塞县| 厦门市| 松阳县| 凤翔县| 武冈市| 万载县|