创建枚举类
- 枚举类会再类中直接静态的提供枚举对象
package src.enums; public enum SeasonOfYear { SPRING ,SUMMER ,AUTUMN ,WINTER; }
枚举比较是否相等是用==还是equals方法?
- 都可以,取枚举对象的引用就是是指向枚举内已经定义好的枚举对象,所以无论用==还是equals方法,结果都是true
package src.enums;
public class EnumTest {
public static void main(String[] args) {
SeasonOfYear season = SeasonOfYear.SPRING;
if(season == SeasonOfYear.SPRING){
System.out.println("SPRING");//ture
}
if(season.equals(SeasonOfYear.SPRING)){
System.out.println("SPRING");//ture
}
}
}
-
枚举类都继承了Enum类,在这个类中只有toString方法可以重写其他方法都被final修饰了,比如hashCode方法
枚举类中的属性
- 枚举类中可以添加属性(成员变量),并用构造方法给枚举对象赋属性值,但与此同时也要
public enum SeasonOfYear {
SPRING("春天")
,SUMMER("夏天")
,AUTUMN("秋天")
,WINTER("冬天");
// 任何一个枚举类型都是默认继承Enum类,所以枚举类型可以直接使用Enum类的方法
//枚举中设置属性
private final String chineseName;
// 要给枚举对象属性值可以通过构造方法,但必须先给枚举的对象的属性初始化一个参数
SeasonOfYear(String chineseName) {
this.chineseName = chineseName;
}
public String getChineseName() {
return chineseName;
}
@Override
public String toString() {
return super.toString();
}
}
- 枚举类中的对象一般作为常量使用,所以一般不提供属性的setter方法,而且属性会用private final 修饰
Enum类中自带的方法
- 因为枚举类都继承Enum所以,Enum中的方法枚举类也可以使用,比如比较常用的value()方法
package src.enums;
public class EnumTest {
public static void main(String[] args) {
SeasonOfYear season = SeasonOfYear.SPRING;
if(season == SeasonOfYear.SPRING){
System.out.println("SPRING");
}
if(season.equals(SeasonOfYear.SPRING)){
System.out.println("SPRING");
}
for (SeasonOfYear value : SeasonOfYear.values()) {
System.out.println(value);
}
}
}