1,当类中的对象是有限个,确定的被称为枚举类,当需要定义一组常量时,使用枚举类
2,若枚举只有一个对象,则可以作为一种单列模式的实现方式
如何定义枚举类1,jdk5.0之前,自定义枚举类
public class SeaonTest { public static void main(String[] args) { // 调用自定义枚举类的方法 Season spring = Season.SPRING; System.out.println(spring); } } // 自定义枚举类 class Season{ // 声明Season对象的属性:private final进行修饰 private final String seasonName; private final String seasonDesc; // 私有化的构造器,并给对象属性赋值 private Season (String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } // 3,提供当前枚举类的多个对象:public static final的 public static final Season SPRING = new Season("春天", "1"); public static final Season SUMMER = new Season("夏天", "2"); public static final Season AUTUMN = new Season("秋天", "3"); public static final Season WINTER = new Season("冬天", "4"); // 4,其他诉求L:获取枚举类对象的属性,git public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } @Override public String toString() { return "Season{" + "seasonName='" + seasonName + ''' + ", seasonDesc='" + seasonDesc + ''' + '}'; } }
2,jdk5.0之后,可以使用关键字enum进行枚举类的定义
// 定义的枚举类默认继承于java.lang.Enum // public static void main(String[] args) { Season2 summer = Season2.SUMMER; // 如果使用toString方法重写的化打印的是重写之后的内容 Season{seasonName='夏天', seasonDesc='2'} System.out.println(summer);// SUMMER 默认toSteing打印的是当前对象的名字 System.out.println(Season2.class.getSuperclass()); } } // 自定义枚举类 enum Season2{ // 3,提供当前枚举类的对象,多个对象之间使用","隔开,末尾对象使用";"结束 SPRING ("春天", "1"), SUMMER ("夏天", "2"), AUTUMN ("秋天", "3"), WINTER ("冬天", "4"); // 声明Season对象的属性:private final进行修饰 private final String seasonName; private final String seasonDesc; // 私有化的构造器,并给对象属性赋值 private Season2 (String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } // 4,其他诉求L:获取枚举类对象的属性,git public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } @Override public String toString() { return "Season{" + "seasonName='" + seasonName + ''' + ", seasonDesc='" + seasonDesc + ''' + '}'; }Enum类的主要常用方法
public class SeaonTest1 { // 定义的枚举类默认继承于java.lang.Enum // public static void main(String[] args) { Season2 summer = Season2.SUMMER; // 如果使用toString方法重写的化打印的是重写之后的内容 Season{seasonName='夏天', seasonDesc='2'} System.out.println(summer.toString());// SUMMER 默认toSteing打印的是当前对象的名字 // System.out.println(Season2.class.getSuperclass()); // values方法 Season2[] values = Season2.values(); for ( int i = 0; iEnum关键字定义的枚举类实现接口的情况 1,实现接口,在enum类中实现抽象方法
2,让枚举类的对象分别实现接口中的抽象方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)