­

枚舉類

 1 package com.yhqtv.java;
 2 
 3 /*
 4  * @author  XMKJ  yhqtv.com Email:yhqtv@qq.com
 5  * @create 2020-05-02-9:46
 6  *方式一:jdk5.0之前,自定義枚舉類
 7  * 方式二:jdk5.0 可以使用enum關鍵字定義枚舉類
 8  *
 9  *
10  */
11 public class SeasonTest {
12     public static void main(String[] args) {
13         Season summer = Season.SUMMER;
14         System.out.println(summer);
15         Season autumn = Season.AUTUMN;
16         System.out.println(autumn);
17     }
18 
19 //自定義枚舉類
20 }
21 class Season{
22 //1.聲明Season對象的屬性:private final修飾
23     private final String seasonName;
24     private final String seasonDesc;
25 //2.私有化類的構造器,並給對象屬性賦值
26     private Season(String seasonName,String seasonDesc){
27             this.seasonDesc=seasonDesc;
28             this.seasonName=seasonName;
29 
30     }
31 //3. 提供當前枚舉類的多個對象:public static final
32     public static final Season SPRING=new Season("春天","春暖花開");
33     public static final Season SUMMER=new Season("夏天","夏季炎炎");
34     public static final Season AUTUMN=new Season("秋天","秋高氣爽");
35     public static final Season WINTER=new Season("冬天","冬雪皚皚");
36 // 4.其他訴求1:獲取枚舉類對象的屬性
37     public String getSeasonName() {
38         return seasonName;
39     }
40 
41     public String getSeasonDesc() {
42         return seasonDesc;
43     }
44 
45     @Override
46     public String toString() {
47         return "Season{" +
48                 "seasonName='" + seasonName + '\'' +
49                 ", seasonDesc='" + seasonDesc + '\'' +
50                 '}';
51     }
52 
53 }
 1 package com.yhqtv.java;
 2 
 3 /*
 4  *使用enum關鍵字定義枚舉類
 5  * 說明:定義的枚舉類默認繼承於java.lang.Enum類
 6  * @author  XMKJ  yhqtv.com Email:yhqtv@qq.com
 7  * @create 2020-05-02-10:23
 8  *
 9  */
10 public class SeasonTest1 {
11     public static void main(String[] args) {
12         Season1 autumn = Season1.AUTUMN;
13         //toString();
14         System.out.println(autumn.toString());
15 
16 //        System.out.println(Season1.class.getSuperclass());
17         System.out.println("--------------------");
18         //values();
19         Season1[] values = Season1.values();
20         for (int i = 0; i < values.length; i++) {
21             System.out.println(values[i]);
22             values[i].show();
23         }
24         System.out.println("--------------------");
25         Thread.State[] values1 = Thread.State.values();
26         for (int i = 0; i < values1.length; i++) {
27             System.out.println(values1[i]);
28         }
29         System.out.println("--------------------");
30         //valueOf(String objName):返回枚舉類中對象名是objName的對象
31         Season1 winter = Season1.valueOf("WINTER");
32         System.out.println(winter);
33         winter.show();
34 
35     }
36 
37 }
38 
39 interface Info {
40     void show();
41 
42 }
43 
44 enum Season1 implements Info {
45     //1.提供當前枚舉類的對象,多個對象之間用「,」隔開,末尾用「;」結束
46     SPRING("春天", "春暖花開") {
47         @Override
48         public void show() {
49             System.out.println("春天在哪裡");
50         }
51     },
52     SUMMER("夏天", "夏季炎炎") {
53         @Override
54         public void show() {
55             System.out.println("夏天好無聊");
56         }
57     },
58     AUTUMN("秋天", "秋高氣爽") {
59         @Override
60         public void show() {
61             System.out.println("秋天很涼爽");
62         }
63     },
64     WINTER("冬天", "冬雪皚皚") {
65         @Override
66         public void show() {
67             System.out.println("冬天很冷");
68         }
69     };
70     //2.聲明Season對象的屬性:private final修飾
71     private final String seasonName;
72     private final String seasonDesc;
73 
74     //3.私有化類的構造器,並給對象屬性賦值
75     private Season1(String seasonName, String seasonDesc) {
76         this.seasonDesc = seasonDesc;
77         this.seasonName = seasonName;
78 
79     }
80 
81     // 4.其他訴求1:獲取枚舉類對象的屬性
82     public String getSeasonName() {
83         return seasonName;
84     }
85 
86     public String getSeasonDesc() {
87         return seasonDesc;
88     }
89 
90 //    @Override
91 //    public String toString() {
92 //        return "Season{" +
93 //                "seasonName='" + seasonName + '\'' +
94 //                ", seasonDesc='" + seasonDesc + '\'' +
95 //                '}';
96 //    }
97 
98 }