搜尋
首頁JavaJava基礎java枚舉類型enum用法有哪些

java枚舉類型enum用法有哪些

Oct 30, 2020 pm 01:53 PM
enumjava枚舉類型

java枚舉類型enum用法有:1、枚舉型常數;2、帶一個參數的枚舉;3、向枚舉中添加新方法;4、覆蓋枚舉的方法。

java枚舉類型enum用法有哪些

java枚舉型別enum用法有:

##一、枚舉型常數

package com.yang;
//首先枚举是一个特殊的class
//这个class相当于final static修饰,不能被继承
//他的构造方法强制被私有化,下面有一个默认的构造方法private ColorEnum();
//所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类
public enum ColorEnum {
    //每个枚举变量都是枚举类ColorEnum的实例,相当于RED=new ColorEnum(1),按序号来。
    //每个成员变量都是final static修饰
    RED, GREEN, BLANK, YELLOW;
}

測試類別:

@org.junit.Test
public void ColorTest() {
    //ordinal返回枚举变量的序号
    for(ColorEnum color:ColorEnum.values()) {
        System.out.println(color+",ordinal:"+color.ordinal()+",name:"+color.name());
    }
}

二、帶一個參數的枚舉

package com.yang;
public enum TypeEnum {
    FIREWALL("firewall"),  
    SECRET("secretMac"),  
    BALANCE("f5");  
    private String typeName;  
    TypeEnum(String typeName) {  
        this.typeName = typeName;  
    }  
    /** 
     * 根据类型的名称,返回类型的枚举实例。 
     * 
     * @param typeName 类型名称 
     */  
    public static TypeEnum fromTypeName(String typeName) {  
        for (TypeEnum type : TypeEnum.values()) {  
            if (type.getTypeName().equals(typeName)) {  
                return type;  
            }  
        }  
        return null;  
    }  
    public String getTypeName() {  
        return this.typeName;  
    }    
}

測試類別:

@org.junit.Test
public void TypeTest() {
    String typeName = "f5";  
    TypeEnum type = TypeEnum.fromTypeName(typeName);
    //type:是TypeEnum类实例化对象     typeName:实例化对象type的值             
    // ordinal:实例化对象type的序号(int)          排序值(默认自带的属性 ordinal 的值)
    //name:实化对象的名字(String)                            枚举名称(即默认自带的属性 name 的值)
    System.out.println(type+",typeName:"+type.getTypeName()+",ordinal:"+type.ordinal()+",name:"+type.name());
}

#三、向枚舉中新增方法######
package com.yang;
public enum SeasonEunm {
    //每一个枚举变量都是枚举类SeasonEunm的实例化
    //SeasonEunm.SPRING获得的对象相当于new SeasonEunm("春","春困");获得的对象
    SPRING("春","春困"),SUMMER("夏","夏睡"),AUTUMN("秋","秋乏"),WINTER("冬","冬眠");
    //强制私有化的构造方法,因为枚举类默认继承Eunm类,被final static修饰,不能被继承
    //由于被强制private,所以不能使用new去生成枚举对象
    //在SeasonEunm.SPRING获得对象,隐式调用了下面的构造方法
    // 构造方法 ,赋值给成员变量
    private SeasonEunm(String name, String value) {
        this.name = name;
        this.value = value;
    }
    //添加成员变量的原因是,方便够着方法赋值,使用SeasonEunm.SPRING.getName就能获取对应的值
    private String name;
    private String value;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
###測試類別:###
@org.junit.Test
public void SessionTest() {
    //ordinal返回枚举变量的序号
    for(SeasonEunm seasion:SeasonEunm.values()) {
        System.out.println(seasion+",ordinal:"+seasion.ordinal()+",name:"+seasion.name());
        System.out.println("枚举变量值:"+seasion.getName()+",枚举变量值:"+seasion.getValue());
    }
}
######四、覆寫枚舉的方法######
package com.yang;
public enum RGBEnum {
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
    // 成员变量  
    private String name;  
    private int index;  
    // 构造方法 ,赋值给成员变量
    private RGBEnum(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    //覆盖方法  :只能使用toString方法来输出枚举变量值
    @Override  
    public String toString() {  
        return this.index+"_"+this.name;  
    }  
}
####測試方法:###
@org.junit.Test
public void RGBEnumTest() {
    for(RGBEnum rgb:RGBEnum.values()) {
        System.out.println(rgb.toString());
    }
}
#########相關免費學習推薦:##########java基礎教學############

以上是java枚舉類型enum用法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。