自定义枚举
源码
public class Enumeration02 {
public static void main(String[] args) {
System.out.println(Season.AUTUMN);
System.out.println(Season.SPRING);
}
}
//演示定义枚举实现
class Season{//类
private String name;
String desc;//描述
//定义了四个对象
public static final Season SPRING = new Season("春天","温暖");
public static final Season WINTER = new Season("冬天","寒冷" );
public static final Season AUTUMN = new Season("秋天","凉爽");
public static final Season SUMMER = new Season("夏天","炎热");
//1. 将构造器私有化 目的 防止直接new
//2. 去掉setXxx方法 防止属性被修改
//3. 在Season内部 直接创建固定的对象
//3. 在Season内部 直接创建固定的对象
//4. 优化 可以加入final修饰符
private Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
@Override
public String toString() {
return "Season{" +
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}
enum枚举类1
源码
public class Enumeration03 {
public static void main(String[] args) {
System.out.println(Season2.AUTUMN);
System.out.println(Season2.SUMMER);
}
}
//演示enum关键字来实现枚举类
enum Season2{//类
//定义了四个对象
// public static final Season SPRING = new Season(“春天”,“温暖”);
// public static final Season WINTER = new Season(“冬天”,“寒冷” );
// public static final Season AUTUMN = new Season(“秋天”,“凉爽”);
// public static final Season SUMMER = new Season(“夏天”,“炎热”);
//1. 使用关键字 enum替代 class
//2. public static final Season SPRING = new Season("春天","温暖");直接使用
// SPRING("春天","温暖") 解读: 常量名(实参列表)
//3. 如果有多个常量(对象) 使用 逗号 间隔即可
//4. 如果使用enum 来实现枚举 要求将定义常量对象 写在前面
SPRING("春天","温暖"),WINTER("冬天","寒冷" ),
AUTUMN("秋天","凉爽"),SUMMER("夏天","炎热");
private String name;
private String desc;//描述
private Season2(String name, String desc) {
this.name = name;
this.desc = desc;
}
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
@Override
public String toString() {
return "Season{" +
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}
enum枚举类2
enum枚举类3