public enum Season implements EnumInterfaces{
//枚举类的实例需要在枚举类的第I行中列出
/***
* 关于枚举类
* 1、定义:一个类的对象的个数是有限而且是固定的,且属性固定
* 2、手工定义枚举类
* 2.1 私有化构造器
* 2.2 属性使用final 来修饰
* 2.3 在内的内部创建枚举类的对象 且使用public static final修饰
* 2.4 提供些工具方法,values(),valueOf();
* 3、枚举类enum的关键字定义:
* 3.1 枚举类对象的声明必须放在枚举类的第一行,声明对象的同时即时创建
* 枚举类对象的过程,
* SPRING("春天","春风又绿江南岸"),
SUMMER("夏天","映日荷花别样红");
3.2 若有属性使用 static final 修饰,是其变为常量,
3.4 构造器默认使用private 修饰
* 4、枚举类常用的方法
* 4.1 values(); valueOf();
* 5、实现接口的枚举类
* 5.1 统一在一个方法中提供各个枚举类对象的实现,可以使用swith
* public String getInfo() {
// TODO Auto-generated method stub
switch (this) {
case SPRING:return "s---";
case SUMMER:return "summer---";
}
return null;
}
*
* */
SPRING("春天","春风又绿江南岸"),
SUMMER("夏天","映日荷花别样红");
private Season(String name,String desc){
this.SEASON_DESC = desc;
this.SEASON_NAME = name;
}
final String SEASON_NAME;
final String SEASON_DESC;
/* 接口实践
* (non-Javadoc)
* @see com.enums.EnumInterfaces#getInfo()
*/
public String getInfo() {
// TODO Auto-generated method stub
switch (this) {
case SPRING:return "s---";
case SUMMER:return "summer---";
}
return null;
}
}
接口类
package com.enums;
public interface EnumInterfaces {
public String getInfo();
}
测试类
package com.enums;
import org.junit.Test;
public class TestEnum {
@Test
public void testSeason(){
//System.out.println(Season.SPRING.SEASON_DESC);
System.out.println(Season.SPRING);
System.out.println(Season2.SPRING.getSEASON_DESC());
}
//test valueOf ,values
@Test
public void testEnumMethod(){
// Season[] seasons = Season.values();
// for(Season season :seasons){
// System.out.println(season);
// }
String input = "SPRING";
Season season = Enum.valueOf(Season.class, input);
}
@Test
public void testEnumInterface(){
System.out.println(Season.SPRING.getInfo());
}
}
----