一文秒懂Java enum常見的用法講解
阿新 • • 發佈:2020-12-23
簡介
列舉是Java1.5引入的新特性,通過關鍵字enum來定義列舉類。列舉類是一種特殊類,它和普通類一樣可以使用構造器、定義成員變數和方法,也能實現一個或多個介面,但列舉類不能繼承其他類.
一,常量定義
public enum WeekDay { SUN,MON,TUE,WED,THT,FRI,SAT }
二,swich
public enum WeekDay { SUN,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; // 構造方法 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("紅色",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 interface Behaviour { void print(); String getInfo(); } public enum Color implements Behaviour{ RED("紅色",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); }
到此這篇關於一文秒懂Java enum常見的用法講解的文章就介紹到這了,更多相關Java enum用法內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!