自定义枚举类:
1、提供类的属性,声明为private final
2、声明为final的属性,在私有构造器中初始化
3、提供公共方法调用属性
4、创建共有的枚举类的对象
代码如下:
1 public class Season { 2 private final String seasonName; 3 private final String seasonDesc; 4 5 private Season(String seasonName, String seasonDesc) { 6 this.seasonName = seasonName; 7 this.seasonDesc = seasonDesc; 8 } 9 10 @Override 11 public int hashCode() { 12 final int prime = 31; 13 int result = 1; 14 result = prime * result + ((seasonDesc == null) ? 0 : seasonDesc.hashCode()); 15 result = prime * result + ((seasonName == null) ? 0 : seasonName.hashCode()); 16 return result; 17 } 18 19 public static final Season SPRING = new Season("春天", "春暖花开"); 20 public static final Season SUNNER = new Season("夏天", "夏日炎炎"); 21 public static final Season ATAUM = new Season("秋天", "秋高气爽"); 22 public static final Season WINTER = new Season("冬天", "白雪皑皑"); 23 24 @Override 25 public boolean equals(Object obj) { 26 if (this == obj) 27 return true; 28 if (obj == null) 29 return false; 30 if (getClass() != obj.getClass()) 31 return false; 32 Season other = (Season) obj; 33 if (seasonDesc == null) { 34 if (other.seasonDesc != null) 35 return false; 36 } else if (!seasonDesc.equals(other.seasonDesc)) 37 return false; 38 if (seasonName == null) { 39 if (other.seasonName != null) 40 return false; 41 } else if (!seasonName.equals(other.seasonName)) 42 return false; 43 return true; 44 } 45 46 @Override 47 public String toString() { 48 return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]"; 49 } 50 51 public String getSeasonName() { 52 return seasonName; 53 } 54 55 public String getSeasonDesc() { 56 return seasonDesc; 57 } 58 59 }
注意:
当使用euem定义枚举类的时候:
1、会有一定的改变所用的枚举对象需要放到第一行;
2、不需要new对像,直接写出对象名后跟构造方法,在构造方法中填写各种对象的属性;
3,各个枚举对象之间用逗号隔开。
ps;常用方法values()可以返回一个数组
可以让每一个对象重写其继承的接口。