JAVA 枚举

枚举的定义

  枚举也是JDK5.0的新特性。

  JDK5.0加入了一个全新类型的“类”——枚举类型。

  为此引入了一个新的关键字enum。

 可以这样来定义一个枚举类型:

public enum Color
{
    Red, White, Blue,
}


然后可以这样来使用:

Color myColor = Color.Red;

枚举类型的静态方法

枚举类型提供了两个有用的静态方法values()和valueOf()。

  values()返回枚举所有成员的数组。

  values()方法的使用:

 //values()方法的使用
        for(Color color : Color.values())
        {
            System.out.println(color);        
        }

将输出:

  Red
  White
  Blue
  即values()输出定义在Color中的所有枚举类型。

  而valueOf()将字符串转换成枚举值。
枚举的使用

  枚举可以用在switch语句中。

public class EnumTest
{
    public static void doOperation(OpConstant opConstant)
    {
        switch (opConstant)
        {
        case TURN_LEFT:
            System.out.println("向左转");
            break;
        case TURN_RIGHT:
            System.out.println("向右转");
            break;
        case SHOOT:
            System.out.println("射击");
            break;
        default:
            break;
        }

    }

    public static void main(String[] args)
    {
        doOperation(OpConstant.SHOOT);
    }

}

enum OpConstant
{
    TURN_LEFT, TURN_RIGHT, SHOOT,
}

枚举的本质

public enum Coin
{
    penny("hello"), nickle("world"), dime("welcome"), quarter("hello world");

    private String value;

    public String getValue()
    {
        return value;
    }
    Coin(String value)
    {
        this.value = value;
    }

    public static void main(String[] args)
    {
        Coin coin = Coin.quarter;

        System.out.println(coin.getValue());
    }

}

定义枚举类型时本质上就是在定义一个类别,只不过很多细节由编译器帮您完成,所以某种程度上,enum关键字的作用就像是class或interface。

  当您使用“enum”定义枚举类型时,实质上您定义出来的类型继承自java.lang.Enum类型,而每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance),它们都被预设为final,所以您无法改变它们,它们也是static成员,所以您可以通过类型名称直接使用它们,当然最重要的,它们都是公开的(public)。即枚举中的每个成员默认都是public static final的。

枚举的本质:

  每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance)。

  当定义了一个枚举类型后,在编译的时候就能够确定该枚举类型有多少个实例,这些对象的名字是什么。在运行期间无法再使用该枚举类型创建新的实例。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值