什么是枚举
枚举是逐一列举的意思,枚举的作用是进行取值的规范和分类
有限数据的集合,可以使用枚举表示,比如性别,季节,星期,月份等数据。
定义枚举的格式
public enum 枚举名称{
枚举值1,枚举值2,枚举值3...;
}
例子:
//季节枚举
public enum Season {
SPRING,SUMMER,AUTUNM,WINTER
}
public class MyDate {
private int year;
private int month;
private int day;
private Season season;
public MyDate() {
}
public MyDate(int year, int month, int day, Season season) {
this.year = year;
this.month = month;
this.day = day;
this.season = season;
}
}
public static void main(String[] args) {
MyDate myDate = new MyDate(2022, 11, 2, Season.AUTUNM);
System.out.println(myDate);
}
扩展
枚举的本质是final修饰的Java类(枚举不能被继承)
枚举类的构造方法是私有的(枚举不能在外部创建对象)
枚举值是枚举类的对象,是底层自动创建的
将Season枚举类反编译得:
public final class Season extends Enum
{
public static final Season SPRING = new Season("SPRING", 0);
public static final Season SUMMER = new Season("SUMMER", 1);
public static final Season AUTUNM = new Season("AUTUNM", 2);
public static final Season WINTER = new Season("WINTER", 3);
private static final Season $VALUES[] = $values();
public static Season[] values()
{
return (Season[])$VALUES.clone();
}
public static Season valueOf(String name)
{
return (Season)Enum.valueOf(jwl09679A4E3E/Season, name);
}
private Season(String s, int i)
{
super(s, i);
}
private static Season[] $values()
{
return (new Season[] {
SPRING, SUMMER, AUTUNM, WINTER
});
}
}
最后
如果你对本文有疑问,你可以在文章下方对我留言,敬请指正,对于每个留言我都会认真查看。