中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

java中枚舉的原理和使用方法

發布時間:2020-06-23 15:42:25 來源:億速云 閱讀:186 作者:元一 欄目:編程語言

這期內容當中小編將會給大家帶來有關java中枚舉的原理和使用方法,以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Java Enum簡介:

enum枚舉類型:在實際問題中,有些變量的取值被限定在一個有限的范圍內。例如,一個星期內只有七天,一年只有十二個月,一個班每周有六門課程等等。如果把這些量說明為整型,字符型或其它類型顯然是不妥當的。為此,C語言提供了一種稱為“枚舉”的類型。在“枚舉”類型的定義中列舉出所有可能的取值,被說明為該“枚舉”類型的變量取值不能超過定義的范圍。應該說明的是,枚舉類型是一種基本數據類型,而不是一種構造類型,因為它不能再分解為任何基本類型。

Java Enum原理:

public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE };

實際上,這個聲明定義的類型是一個類,它剛好有四個實例,在此盡量不要構造新對象。

因此,在比較兩個枚舉類型的值時,永遠不需要調用equals方法,而直接使用"=="就可以了。(equals()方法也是直接使用==,  兩者是一樣的效果)

用法一:常量

在JDK1.5 之前,我們定義常量都是: public static fianl.... 。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法。

public enum Color {  
  RED, GREEN, BLANK, YELLOW  
}

用法二:switch

JDK1.6之前的switch語句只支持int,char,enum類型,使用枚舉,能讓我們的代碼可讀性更強。

enum Signal {
        GREEN, YELLOW, RED
    }

    public class TrafficLight {
        Signal color = Signal.RED;

        public void change() {
            switch (color) {
            case RED:
                color = Signal.GREEN;
                break;
            case YELLOW:
                color = Signal.RED;
                break;
            case GREEN:
                color = Signal.YELLOW;
                break;
            }
        }
    }

用法三:向枚舉中添加新方法

如果打算自定義自己的方法,那么必須在enum實例序列的最后添加一個分號,而且 Java 要求必須先定義 enum 實例。

public enum Color {
    RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);
    // 成員變量
    private String name;
    private int index;

    // 構造方法
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

    // 普通方法
    public static String getName(int index) {
        for (Color c : Color.values()) {
        if (c.getIndex() == index) {
            return c.name;
        }
        }
        return null;
    }

    // get set 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }
    }

用法四:覆蓋枚舉的方法

下面給出一個toString()方法覆蓋的例子。

public class Test {
    public enum Color {
        RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);
        // 成員變量
        private String name;
        private int index;

        // 構造方法
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }

        // 覆蓋方法
        @Override
        public String toString() {
            return this.index + "_" + this.name;
        }
    }

    public static void main(String[] args) {
        System.out.println(Color.RED.toString());
    }
}

用法五:使用接口組織枚舉

public interface Food {
        enum Coffee implements Food {
            BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO
        }

        enum Dessert implements Food {
            FRUIT, CAKE, GELATO
        }
    }

用法六:實現接口

所有的枚舉都繼承自java.lang.Enum類。由于Java 不支持多繼承,所以枚舉對象不能再繼承其他類。

public interface Behaviour {
    void print();

    String getInfo();
    }

    public enum Color implements Behaviour {
    RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);
    // 成員變量
    private String name;
    private int index;

    // 構造方法
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

    // 接口方法

    @Override
    public String getInfo() {
        return this.name;
    }

    // 接口方法
    @Override
    public void print() {
        System.out.println(this.index + ":" + this.name);
    }
    }

上述就是小編為大家分享的java中枚舉的原理和使用方法了,如果您也有類似的疑惑,不妨參照上述方法進行嘗試。如果想了解更多相關內容,請關注億速云行業資訊。

向AI問一下細節

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

AI

永春县| 楚雄市| 宜黄县| 云安县| 苗栗县| 中卫市| 庄浪县| 三台县| 恩施市| 济南市| 浙江省| 高清| 泉州市| 台中市| 新源县| 育儿| 苗栗县| 大足县| 龙胜| 淮安市| 仪征市| 井冈山市| 都昌县| 阳朔县| 西宁市| 武汉市| 门头沟区| 奎屯市| 新余市| 自贡市| 湾仔区| 宁国市| 安阳市| 新田县| 调兵山市| 韶关市| 胶南市| 镇康县| 萍乡市| 怀柔区| 湖南省|