詳解java枚舉用法及實(shí)例
一、枚舉類型作為常量
package myenum;
/**
* @author zzl
* 簡單的枚舉作為常量
*/
public enum Color {
GREEN,RED,YELLOW;
public static void main(String[] args) {
for (Color c : values()) {
System.out.println("color:"+c);
}
}
}
//輸出
/**
color:GREEN
color:RED
color:YELLOW
*/
其實(shí)在更近一步的話我們可以輸出每個(gè)枚舉實(shí)例的具體位置
package myenum;
/**
* @author zzl
* 簡單的枚舉作為常量
*/
public enum Color {
GREEN,RED,YELLOW;
public static void main(String[] args) {
for (Color c : values()) {
System.out.println(c + " position "+c.ordinal());
}
}
}
//輸出結(jié)果
/**
GREEN position 0
RED position 1
YELLOW position 2
*/
二、與swith結(jié)合使用
public enum Color {
GREEN,RED,YELLOW;
public static void main(String[] args) {
Color c = RED;
switch (c) {
case RED:
System.out.println("紅色");
break;
case GREEN:
System.out.println("綠色");
break;
case YELLOW:
System.out.println("黃色");
break;
default:
break;
}
}
}
//輸出
/**
紅色
*/
從上面的例子可以看出枚舉的多態(tài)性,其實(shí)可以講Color作為枚舉的超類,其中的實(shí)例在運(yùn)行時(shí)表現(xiàn)出多態(tài)。(如上面的輸出結(jié)果為紅色,下面的例子來驗(yàn)證這一特性。)
三、多態(tài)性(在Color中添加抽象方法)
public enum Color {
GREEN{
void description(){
System.out.println("綠燈行!");
}
},RED{
void description(){
System.out.println("紅燈停!");
}
},YELLOW{
void description(){
System.out.println("黃燈亮了等一等!");
}
};//如果枚舉中有方法則左后一個(gè)實(shí)例以“;”結(jié)束
abstract void description();
public static void main(String[] args) {
for (Color c : values()) {
c.description();
}
}
}
<pre name="code" class="java">//輸出
/**
綠燈行!
紅燈停!
黃燈亮了等一等!
*/
四、利用構(gòu)造器為實(shí)例添加描述
public enum ColoStructure {
GREEN("綠色"),RED("紅色"),YELLOW("黃色");//如果枚舉中有方法則左后一個(gè)實(shí)例以“;”結(jié)束
public String description;
private ColoStructure(String des){
this.description = des;
}
public static void main(String[] args) {
for (ColoStructure c : values()) {
System.out.println(c.description);
}
}
}
<pre name="code" class="java"><pre name="code" class="java">//輸出
/**
綠色
紅色
黃色
*/
希望本文可以幫到有需要的朋友
相關(guān)文章
Idea運(yùn)行單個(gè)main方法,不編譯整個(gè)工程的問題
這篇文章主要介紹了Idea運(yùn)行單個(gè)main方法,不編譯整個(gè)工程的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
mybatis根據(jù)表逆向自動(dòng)化生成代碼的實(shí)現(xiàn)
若采用mybatis框架,數(shù)據(jù)庫新建表,手動(dòng)編寫的話,需要編寫大量的實(shí)體類、mapper文件、mapper.xml文件,都是一些重復(fù)且有規(guī)律的工作。我們可以引用插件,然后做配置,自動(dòng)生成這些文件,本文就來詳細(xì)的介紹一下2021-08-08
java.io.EOFException產(chǎn)生原因及解決方法(附代碼)
java.io.EOFException表示在讀取數(shù)據(jù)時(shí)突然遇到了文件或流的末尾,也就是說客戶端或服務(wù)器已經(jīng)關(guān)閉了連接,但是你還在嘗試讀取數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于java.io.EOFException產(chǎn)生原因及解決的相關(guān)資料,需要的朋友可以參考下2023-09-09
Java 實(shí)現(xiàn)完整功能的學(xué)生管理系統(tǒng)實(shí)例
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)完整版學(xué)生管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11
在Java和PostgreSQL枚舉之間轉(zhuǎn)換的通用方法
枚舉類型(enum)是一種方便的數(shù)據(jù)類型,允許我們指定一個(gè)常量列表,對象字段或數(shù)據(jù)庫列可以設(shè)置為該列表中的值,在本文中,我將回顧處理Java和PostgreSQL枚舉轉(zhuǎn)換的通用方法,需要的朋友可以參考下2023-10-10
Java使用線程池批量處理數(shù)據(jù)操作具體流程
這篇文章主要給大家介紹了關(guān)于Java使用線程池批量處理數(shù)據(jù)操作的相關(guān)資料,Java多線程編程中線程池是一個(gè)非常重要的概念,線程池可以提高線程的復(fù)用率和任務(wù)調(diào)度的效率,尤其是當(dāng)需要查詢大批量數(shù)據(jù)時(shí),需要的朋友可以參考下2023-06-06

