关于Enum类的方法:
(1)toString:如果子枚举类没有重写toString,就返回枚举对象名。如果有子枚举类toString有重写,就看子类的toString方法是输出什么内容,一般是枚举对象的属性。
调用方式:直接输出对象。
Season3 spring = Season3.SPRING;
System.out.println(spring);
(2)name方法:返回枚举对象名
定义方式:枚举对象名.name();
System.out.println(spring.name());
(3)value方法:返回枚举类所有对象的数组。要用枚举类数组来接收。这里引出增强for循环。
定义方式:枚举类.value.
Season3[] arr = Season3.values();
//引出新的知识点:增强for循环
for(Season3 season : arr){//就是将arr这个数组的元素一一取出来,赋给season,如果取完就会自动退出。
System.out.println(season);//输出的是对象,会自动调用toString
}
(4)valueof()方法:用字符串查找枚举类中是否有这个对象名,如果有就返回,没有就报错。
使用方式:枚举类 suibian = 枚举类.valueof("字符串");
//第五个valueof方法,用字符串来查找枚举类中是否有跟这个同名的枚举对象,如果有就返回
Season3 autumn = Season3.valueOf("AUTUMN");//既然返回的是对象就要接收一下。
(5)ordinal()方法:查找是枚举对象在整个枚举类数组的位置。
使用方式:对象名.ordinal();
//第三个ordinal,该枚举对象在整体个枚举对象中的序号,序号是从0开始的。
System.out.println(spring.ordinal());
(6)compareTo()方法:两个对象的ordinal()相减,前者减后者。
//第六个compareTo方法,比较两者的次序之前,前者减后者。
System.out.println(Season3.SPRING.compareTo(Season3.WINTER));