枚举类 Enum 之初认识

 1 import java.util.*;
 2 public class Demo13{
 3     public static void main(String[] args) {
 4         Weekday day = Weekday.SUN;
 5         //int day = 1;
 6         if(day.dayValue == 1 || day.dayValue == 7){
 7             System.out.println("Work at home!");
 8         }else{
 9             System.out.println("Work at office!");
10         }
11         //因为enum是一个class,每个枚举的值都是class实例
12         //返回常量名
13         String s = day.name();
14         //返回定义的常量的顺序,从0开始计数
15         int n = day.ordinal();
16         System.out.println(s);  // SUN
17         System.out.println(n);  // 0
18     }
19 }
20 
21 /*
22 通过enum定义的枚举类,和其他的class有什么区别?
23 
24 1.定义的enum类型总是继承自java.lang.Enum,且无法被继承;
25 
26 2.只能定义出enum的实例,而无法通过new操作符创建enum的实例;
27 
28 3.定义的每个实例都是引用类型的唯一实例;
29         使用enum定义的枚举类是一种引用类型。前面我们讲到,引用类型比较,要使用equals()方法,如果使用==比较,它比较的是两个引用类型的变量是否是同一个对象。因此,引用类型比较,要始终使用equals()方法,但enum类型可以例外
30         
31         因为enum类型的每个常量在JVM中只有一个唯一实例,所以可以直接用==比较
32         
33     if (day == Weekday.FRI) { // ok!
34     }
35     if (day.equals(Weekday.SUN)) { // ok, but more code!
36     }
37 
38 4.可以将enum类型用于switch语句
39 */
40 enum Weekday{
41     //定义的每个枚举常量都是枚举类的实例
42     SUN(1),MON(2),TUE(3),WED(4),THU(5),FRI(6),SAT(7);
43     
44     //给每个枚举常量添加字段
45     public final int dayValue;
46     
47     //私有构造器
48     private Weekday(int dayValue){
49         this.dayValue = dayValue;
50     }
51 }

 

上一篇:TypeScript NestJS文件上传下载接口(复制过去即可用)


下一篇:Enum>