1、枚舉類的簡單用法ide
1. 定義一個枚舉類測試
1 public enum SeasonEnum { 2 //在第一行列表4個枚舉實例 3 //枚舉類的全部實例必須在枚舉類的第一行顯示列出 4 SPRING,SUMMER,FALL,WINTER; 5 }
2. 定義一個枚舉測試類this
1 public class EnumTest { 2 public void judge(SeasonEnum s){ 3 switch (s){ 4 case SPRING: 5 System.out.println("春暖花開,正好踏青"); 6 break; 7 case SUMMER: 8 System.out.println("夏日炎炎,正好游泳"); 9 break; 10 case FALL: 11 System.out.println("秋高氣爽,進補及時"); 12 break; 13 case WINTER: 14 System.out.println("冬日雪飄,圍爐賞雪"); 15 break; 16 } 17 } 18 19 public static void main(String[] args) { 20 //枚舉類默認有一個values()方法,返回該枚舉類的全部實例 21 for (SeasonEnum s : 22 SeasonEnum.values()) { 23 System.out.println(s); 24 } 25 new EnumTest().judge(SeasonEnum.SPRING); 26 System.out.println(SeasonEnum.SPRING.compareTo(SeasonEnum.SUMMER)); 27 System.out.println(SeasonEnum.valueOf("SPRING")); 28 } 29 }
2、實現接口的枚舉類spa
1. 定義一個接口code
public interface GenderDesc { void info(); }
2. 定義一個實現接口的枚舉類blog
1 /** 2 * 實現接口的枚舉類 3 */ 4 public enum Gender implements GenderDesc { 5 //此處的枚舉值必須調用對應的構造器來建立 6 //花括號部分其實是一個實體部分 7 MALE("男") { 8 @Override 9 public void info() { 10 System.out.println("這個枚舉值表明男性"); 11 } 12 }, 13 FEMALE("女"){ 14 @Override 15 public void info() { 16 System.out.println("這個枚舉值表明女性"); 17 } 18 }; 19 //將成員變量設置爲private防止外部類修改 20 private String name; 21 //枚舉類的構造器只能使用private修飾 22 private Gender(String name){ 23 this.name = name; 24 } 25 public String getName(){ 26 return this.name; 27 } 28 }
3. 測試接口
/** * 性別枚舉類測試 */ public class GenderTest { public static void main(String[] args) { System.out.println(Gender.FEMALE); Gender.FEMALE.info(); Gender.MALE.info(); } }
3、包含抽象方法的枚舉類get
/** * 包含抽象方法的枚舉類 */ public enum Operation { PLUS{ @Override public double eval(double a, double b) { return a + b; } }, MINUS{ @Override public double eval(double a, double b) { return a - b; } }, TIMES{ @Override public double eval(double a, double b) { return a * b; } }, DIVIDE{ @Override public double eval(double a, double b) { return a / b; } }; //爲枚舉類定義一個抽象方法 //這個抽象方法由不一樣的枚舉值提供不一樣的實現 public abstract double eval(double a,double b); public static void main(String[] args) { System.out.println(Operation.PLUS.eval(3,4)); System.out.println(Operation.MINUS.eval(5,2)); System.out.println(Operation.TIMES.eval(4,5)); System.out.println(Operation.DIVIDE.eval(5,6)); } }