1、自定义枚举类
// 测试类
public class enumDemo {
public static void main(String[] args) {
System.out.println(Season.SPRING);
System.out.println(Season.SUMMER);
System.out.println(Season.AUTUMN);
System.out.println(Season.WINTER);
}
}
// 自定义枚举类
class Season {
// 1、定义枚举类属性
private String seasonName;
private String seasonFeature;
// 2、有参构造方法私有化
private Season(String seasonName, String seasonFeature) {
this.seasonName = seasonName;
this.seasonFeature = seasonFeature;
}
// 3、定义常量对象
public static final Season SPRING = new Season("SPRING", "春江水暖鸭先知");
public static final Season SUMMER = new Season("SUMMER", "小荷才露尖尖角");
public static final Season AUTUMN = new Season("AUTUMN", "秋水共长天一色");
public static final Season WINTER = new Season("WINTER","窗含西岭千秋雪");
// 4、生成set/get方法
public String getSeasonName() {
return seasonName;
}
public void setSeasonName(String seasonName) {
this.seasonName = seasonName;
}
public String getSeasonFeature() {
return seasonFeature;
}
public void setSeasonFeature(String seasonFeature) {
this.seasonFeature = seasonFeature;
}
// 5、重写toString()方法
@Override
public String toString() {
return "Season{" +
"seasonName='" + seasonName + '\'' +
", seasonFeature='" + seasonFeature + '\'' +
'}';
}
}
测试结果:
Season{seasonName='SPRING', seasonFeature='春江水暖鸭先知'}
Season{seasonName='SUMMER', seasonFeature='小荷才露尖尖角'}
Season{seasonName='AUTUMN', seasonFeature='秋水共长天一色'}
Season{seasonName='WINTER', seasonFeature='窗含西岭千秋雪'}
2、使用JDK1.5之后新特性enum关键字
public class EnumDemo {
public static void main(String[] args) {
// 获取枚举类中对象的属性
System.out.println(Season.SPRING.getSeasonName() + "=====>" + Season.SPRING.getSeasonFeature());
System.out.println(Season.SUMMER.getSeasonName() + "=====>" + Season.SUMMER.getSeasonFeature());
System.out.println(Season.AUTUMN.getSeasonName() + "=====>" + Season.AUTUMN.getSeasonFeature());
System.out.println(Season.WINTER.getSeasonName() + "=====>" + Season.WINTER.getSeasonFeature());
System.out.println("*********************************");
// 获取枚举类中的所有对象,遍历Season中的所有对象
Season[] values = Season.values();
for (Season value : values) {
System.out.println(value);
}
System.out.println("*********************************");
// 将普通字符串转换为枚举实例
Season spring = Season.valueOf("SPRING");
System.out.println(spring.getSeasonName() + "=====>" + spring.getSeasonFeature());
System.out.println("*********************************");
// 查看Season的父类
System.out.println(Season.class.getSuperclass());
}
}
// 使用JDK1.5enum关键字来定义枚举类
enum Season{
// 1、定义枚举类中的对象,每个对象中间以逗号隔开,最后以分号结尾.
SPRING("SEASON_SPRING","春江水暖鸭先知"),
SUMMER("SEASON_SUMMER","小荷才露尖尖角"),
AUTUMN("SEASON_AUTUMN","秋水共长天一色"),
WINTER("SEASON_WINTER","窗含西岭千秋雪");
// 2、定义枚举类中对象的属性
private String seasonName;
private String seasonFeature;
// 3、构造方法私有化
private Season(String seasonName,String seasonFeature){
this.seasonName = seasonName;
this.seasonFeature = seasonFeature;
}
// 4、生成set/get方法
public String getSeasonName() {
return seasonName;
}
public String getSeasonFeature() {
return seasonFeature;
}
// 5、 如果不重写toString()方法,则默认使用父类的toString方法(它的父类是java.lang.Enum,可以通过
//Season.class.getSuperClass()方法查看),Enum类默认输出的是Season中的对象,SPRING/SUMMER/AUTUMN/WINTER
@Override
public String toString() {
return "Season{" +
"seasonName='" + seasonName + '\'' +
", seasonFeature='" + seasonFeature + '\'' +
'}';
}
}
测试结果:
SEASON_SPRING=====>春江水暖鸭先知
SEASON_SUMMER=====>小荷才露尖尖角
SEASON_AUTUMN=====>秋水共长天一色
SEASON_WINTER=====>窗含西岭千秋雪
*********************************
Season{seasonName='SEASON_SPRING', seasonFeature='春江水暖鸭先知'}
Season{seasonName='SEASON_SUMMER', seasonFeature='小荷才露尖尖角'}
Season{seasonName='SEASON_AUTUMN', seasonFeature='秋水共长天一色'}
Season{seasonName='SEASON_WINTER', seasonFeature='窗含西岭千秋雪'}
*********************************
SEASON_SPRING=====>春江水暖鸭先知
*********************************
class java.lang.Enum