*************************枚举 *************************************
JDK5.0的特性
一.为什么使用枚举
单例: 是为了保证一个类只有一个唯一的实例
枚举: 当一个类的对象 个数固定 的时候 推荐使用枚举
例如: 季节类、性别类、星期类
***********************手工创建枚举*****************************
package com.chapter18.枚举;
//手工创建枚举
public class Season {
private String name;
private String desc;
public static final Season SPRING = new Season("春天","趁春踏青");
public static final Season SUMMER = new Season("夏天","烈日炎炎");
public static final Season FALL = new Season("秋天","秋高气爽");
public static final Season WINTER = new Season("冬天","围炉赏雪");
//1.构造函数私有
private Season(){
}
private Season(String name, String desc) {
super();
this.name = name;
this.desc = desc;
}
//2.提供一个静态方法 创建4个对象的其中一个
public static Season getSeason(int sum){
switch(sum){
case 1:return SPRING;
case 2:return SUMMER;
case 3:return FALL;
case 4:return WINTER;
default:return null;
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
@Override
public String toString() {
return "Season [name=" + name + ", desc=" + desc + "]";
}
public static void main(String[] args) {
//1. 类名.对象名
System.out.println(Season.FALL);
//2. 类名.getSeason()方法获得对象
Season season = Season.getSeason(3);
System.out.println(season.getName() + "这真是一个" + season.getDesc() + "的季节!");
}
}
程序员自己手工创建枚举比较麻烦, 从JDK5.0开始, 有了枚举类..简化了枚举的编写
***********************************定义枚举**********************************************
package com.chapter18;
//定义一个枚举
public enum Season {
SPRING,SUMMER,FALL,WINTER;
public static void main(String[] args) {
Season season = Season.FALL;
//System.out.println(season);
Season[] seasonArr = Season.values();
for(Season s:seasonArr){
System.out.println(s);
}
}
}
***********************************定义带属性的枚举****************************************
package com.chapter18;
//定义一个枚举
public enum Season {
SPRING("春天","趁春踏青"),SUMMER("夏天","烈日炎炎"),FALL("秋天","秋高气爽"),WINTER("冬天","围炉赏雪");
private String name;
private String desc;
private Season(String name,String desc){
this.name = name;
this.desc = desc;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static void main(String[] args) {
Season season = Season.FALL;
//System.out.println(season);
Season[] seasonArr = Season.values();
for(Season s:seasonArr){
System.out.println(s.getName() + "这真是一个" + s.getDesc());
}
}
}