亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java枚舉案例分析

發布時間:2022-05-26 14:02:51 來源:億速云 閱讀:148 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“Java枚舉案例分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Java枚舉案例分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

Java枚舉案例分析

枚舉就是要讓某個類型的變量的取值只能為若干個固定值中的一個,否則編譯器就會報錯,枚舉可以讓編譯器在編譯時就可以控制源程序賦給的非法值,使用普通變量的方式在開發階段無法實現這一目標。
在JDK1.5之后,使用關鍵字enum定義一種新的類型,稱為枚舉類型
枚舉(enum)和類(class)、接口(interface)是同一級別

案例引入

定義一個color,只能定義紅、綠、藍三種顏色

普通方法
Java枚舉案例分析
那么如何解決這種問題,讓color只能在三種顏色中選一種???

Enum類和enum關鍵字

使用enum關鍵字定義的枚舉類,實際上就相當于定義了一個類,此類繼承課Enum類而已。

public enum Color {
    RED,
    GREEN,
    BLUE;}

Java枚舉案例分析

枚舉常用的方法

protected Enum(String name,int ordinal)此構造方法不能被外部直接調用,只能被其子類訪問,此構造方法為自動調用
public final String name()返回枚舉的名字
public String toString()返回枚舉的名字
public final int ordinal()返回枚舉的序號,默認從0開始
public final boolean equals(Object other)判斷兩個枚舉是否相同

代碼

public class EnumTest {
    public static void main(String[] args) {
        //定義一個color變量,只能設置為RED、GREEN、BLUE
        Color color = Color.BLUE;
        System.out.println(color);
        System.out.println(color.name());
        System.out.println(color.toString());//三種方式都是打印名字
        System.out.println(color.ordinal());//返回枚舉的序號RED--0、GREEN--1、BLUE--2

        Color[] values = Color.values();//返回所有枚舉類型
        System.out.println(Arrays.toString(values));
    }}

Java枚舉案例分析

枚舉的基本操作

帶構造方法的枚舉

枚舉的本質是一個繼承Enum類的子類,JVM編譯器把枚舉編譯后生成一個final class

枚舉不允許從外部調用,所以只能是private修飾
Java枚舉案例分析
構造方法只能在對象中調用
Java枚舉案例分析

public enum Color {
    RED(10),
    GREEN(20),
    BLUE;
    private int Number;//屬性

    private Color() {//默認構造方法
        System.out.println("無參構造器被調用了!!!");
    }

    private Color(int Number) {
        this.Number = Number;
        System.out.println("有參構造器被調用了!!!");
    }
    
    public int getNumber(){
        return Number;
	}}

主方法

public class EnumTest {
    public static void main(String[] args) {
        Color color = Color.RED;
        System.out.println(color.name());
        System.out.println(color.getNumber());//獲取Number的值
    }}

Java枚舉案例分析

枚舉實現接口

在枚舉類型中,可以繼承接口,實現接口有兩種方法,要么在枚舉類中實現該方法,或者在對象內部實現該方法

方式1:在枚舉對象內部實現接口中的方法

interface info{
    public String getColor();}public enum Color implements info{
    RED{
        @Override
        public String getColor() {return "紅色";}
    },
    GREEN{
        @Override
        public String getColor() {return "綠色";}
    },
    BLUE{
        @Override
        public String getColor() {return "藍色";}
    };}

方式2:在枚舉類中實現接口中的方法

interface info{
    public String getColor();}public enum Color implements info{

    RED,GREEN,BLUE;
    
    @Override
    public String getColor() {
        return null;
    }}

主方法

public class EnumTest {
    public static void main(String[] args) {
        Color color = Color.RED;
        System.out.println(color.getColor());
    }}

Java枚舉案例分析

枚舉實現抽象方法

在枚舉類型中,可以定義抽象方法,具體由對象實現

枚舉類

public enum Color {
    RED{
        @Override
        public String getColor() {return "紅色";}
    },
    GREEN{
        @Override
        public String getColor() {return "綠色";}
    },
    BLUE{
        @Override
        public String getColor() {return "藍色";}
    };
    //在枚舉中定義一個抽象方法,通過枚舉對象實現
    public abstract String getColor();}

主方法

public class EnumTest {
    public static void main(String[] args) {
        Color color = Color.BLUE;
        System.out.println(color.getColor());
    }}

Java枚舉案例分析

枚舉實現單例模式

枚舉是用來保證數據在指定范圍內的值,如果枚舉中只有一個類型(一個值)的話,枚舉中就只有一個對象,那么就可以實現單例模式。

枚舉類

public enum Singletion {
    SINGLETION;
    public void Method(){
        System.out.println("使用枚舉實現單例模式!!!");
    }}

主方法

public class EnumTest {
    public static void main(String[] args) {
        Singletion singletion=Singletion.SINGLETION;
        singletion.Method();
    }}

Java枚舉案例分析

集合類對枚舉的支持

在JDK1.5之后,對于Set和Map接口而言又增加了兩個新的子類:EnumSetEnumMap兩個子類

EnumSet

一個專門Set實現與枚舉類型一起使用。 枚舉集中的所有元素都必須來自創建集合時明確或隱式指定的單個枚舉類型
EnumSet是一個抽象類,不能直接創建實例對象,但是可以通過方法來使用。Java枚舉案例分析

EnumSet.allOf(Class<E> elementType)把一個枚舉類型全部填充到集合中去
public static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)創建與指定枚舉集具有相同元素類型的枚舉集,最初包含此類型的所有元素,該元素 不包含在指定的集合中。
public static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)創建與指定的枚舉集相同的元素類型的枚舉集,最初包含相同的元素(如果有)

代碼

import java.util.EnumSet;public class EnumTest {
    public static void main(String[] args) {
        EnumSet<Color> set = EnumSet.allOf(Color.class);//把一個枚舉類型全部填充到集合中去
        for (Color c : set) {
            System.out.println(c.name());
        }
    }}

Java枚舉案例分析

EnumMap

EnumMap一個專門Map實現與枚舉類型鍵一起使用。 枚舉映射中的所有密鑰必須來自創建映射時明確或隱式指定的單個枚舉類型。 枚舉地圖在內部表示為數組。 這種表示非常緊湊和高效。

代碼

import java.util.EnumMap;public class EnumTest {
    public static void main(String[] args) {
        EnumMap<Color, String> map = new EnumMap<>(Color.class);
        map.put(Color.RED, "紅色");
        map.put(Color.GREEN, "綠色");
        map.put(Color.BLUE, "藍色");
        System.out.println(map.get(Color.RED));
    }

Java枚舉案例分析

讀到這里,這篇“Java枚舉案例分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永泰县| 崇仁县| 新龙县| 绥棱县| 五寨县| 类乌齐县| 郸城县| 曲阳县| 安福县| 甘肃省| 漳平市| 松潘县| 余庆县| 海南省| 大新县| 苍山县| 鹤庆县| 武威市| 和政县| 拉孜县| 安仁县| 黄石市| 石景山区| 涿鹿县| 大厂| 临澧县| 杭锦后旗| 轮台县| 郎溪县| 霍城县| 山东省| 长顺县| 康平县| 修水县| 芒康县| 阿合奇县| 上栗县| 子长县| 凤阳县| 嘉鱼县| 潮安县|