枚舉類的使用

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));
    }
}
相關文章
相關標籤/搜索