JDK5.0新特性:枚举类型enum、枚举集合EnumSet、枚举映射EnumMap

java.lang.Object
  java.lang.Enum<E>

一、枚举特性:

1、枚举类型enum和类class、接口interface的级别是一样的,关键字enum;

2、定义的每个枚举类型都继承自java.lang.Enum类;

3、枚举中可以定义枚举值(枚举成员)和方法(包括构造方法)

4、枚举成员是public、final、static修饰的,每个枚举成员实际是枚举的实例。 


举例1:

在class中调用枚举值。

public enum Color

{

Red,White, Blue;// 定义了3个枚举值。最后可以加分号,也可以不加分号,两个枚举值之间用逗号隔开

}

调用方式为: 枚举名称.成员名称,例如 Color.Red,可以在类中调用枚举值。例如:

public class  EnumTest
{
public static void main(String[] args) 
{
System.out.println(Color.Blue);
}
}

结果为:Blue


举例2:

利用枚举中定义的静态方法,遍历枚举值。

枚举中给出了2个静态方法:

public static <T extends Enum<T>> T values() 得到枚举值的数组

public static <T extends Enum<T>> T valueOf(Class<T> enumType,String name)

根据values()方法,遍历枚举值:

enum Color
{
Red,Blue,Black,White

}


public class  EnumTest
{
public static void main(String[] args) 
{
for(Color c : Color.values())
{
System.out.println(c);
}

}
}


结果(打印顺序按照枚举中定义的 顺序):

Red

Blue

Black

White


举例3:

在类中使用switch...case函数调用枚举值,switch后可以跟的数据类型有5种:char、byte、short、int、enum。

enum Operation
{
TURN_LEFT,
TURN_RIGHT,
SHOOT
}

public class  EnumTest
{
public static void main(String[] args) 
{
EnumTest.operation(Operation.TURN_LEFT);
}
public static void operation(Operation operation) 
{
switch(operation)
{
case TURN_LEFT:
System.out.println("左转");
break;
case TURN_RIGHT:
System.out.println("右转");
break;
case SHOOT:
System.out.println("射击");
break;
}
}
}

结果:左转


举例4:

在枚举中定义构造方法、一般方法。

enum Name
{
LPP("lpp"),FGS("fgs"),LILY("lily");//枚举值为枚举的实例,其表现形式和构造函数一致:枚举构造函数中传入String类型的字符串,则枚举值也应传入String类型的字符串
//LPP,FGS,LILY;//此句出错,是因为不带参数的构造函数已经被重写
private String s;
Name(String s)//此处不允许使用public

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值