一文秒懂Java enum常見的用法講解
枚舉是Java1.5引入的新特性,通過關(guān)鍵字enum來定義枚舉類。枚舉類是一種特殊類,它和普通類一樣可以使用構(gòu)造器、定義成員變量和方法,也能實(shí)現(xiàn)一個(gè)或多個(gè)接口,但枚舉類不能繼承其他類.
一,常量定義public enum WeekDay { SUN, MON, TUE, WED, THT, FRI, SAT}二,swich
public enum WeekDay { SUN, MON, TUE, WED, THT, FRI, SAT} public class SelectDay{ WeekDay weekday = WeekDay.SUN; public void select(){ switch(weekday){ case SUN:weekday = WeekDay.SUN;break; ... } }}三,向枚舉添加新方法
public enum Color { RED('紅色', 1), GREEN('綠色', 2), BLANK('白色', 3), YELLO('黃色', 4); // 成員變量 private String name; private int index; // 構(gòu)造方法 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; } } 四,覆蓋枚舉方法
public enum Color { RED('紅色', 1), GREEN('綠色', 2), BLANK('白色', 3), YELLO('黃色', 4); // 成員變量 private String name; private int index; // 構(gòu)造方法 private Color(String name, int index) { this.name = name; this.index = index; } //覆蓋方法 @Override public String toString() { return this.index+'_'+this.name; } }五,實(shí)現(xiàn)接口
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; // 構(gòu)造方法 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); } }六,接口組織枚舉
public interface Food { enum Coffee implements Food{ BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO } enum Dessert implements Food{ FRUIT, CAKE, GELATO } }七,枚舉集合
public class Test { public static void main(String[] args) { EnumSet<WeekDay> week = EnumSet.noneOf(WeekDay.class); week.add(WeekDay.MON); System.out.println('EnumSet中的元素:' + week); week.remove(WeekDay.MON); System.out.println('EnumSet中的元素:' + week); week.addAll(EnumSet.complementOf(week)); System.out.println('EnumSet中的元素:' + week); week.removeAll(EnumSet.range(WeekDay.FRI, WeekDay.SAT)); System.out.println('EnumSet中的元素:' + week); }
到此這篇關(guān)于一文秒懂Java enum常見的用法講解的文章就介紹到這了,更多相關(guān)Java enum用法內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Java Media Framework 基礎(chǔ)教程2. 解決vue頁面刷新,數(shù)據(jù)丟失的問題3. Python 忽略文件名編碼的方法4. springboot項(xiàng)目整合druid數(shù)據(jù)庫連接池的實(shí)現(xiàn)5. JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis6. python 讀txt文件,按‘,’分割每行數(shù)據(jù)操作7. android studio實(shí)現(xiàn)簡單的計(jì)算器(無bug)8. 在Mac中配置Python虛擬環(huán)境過程解析9. Python趣味挑戰(zhàn)之用pygame實(shí)現(xiàn)簡單的金幣旋轉(zhuǎn)效果10. Python中的min及返回最小值索引的操作
