java枚举

一、基础

1、枚举类关键字enum
2、不同值之间用逗号分隔;
3、枚举类型可以定义为一个单独文件,也可以定义在其他类内部;
4、枚举变量的toString()方法和name()fangfa 返回其字面值,

二、相关方法

    public static void main(String[] args) {
        Size size=Size.SMALL;
        System.out.println(size.toString());//SMALL
        System.out.println(size.name());//SMALL
        System.out.println(size.ordinal());//2
    }
    public enum Size{
        LARGE,MEDIUM,SMALL
    }

1、toString()
返回其字面值
2、name()
返回其字面值

3、int ordinal()
表示枚举值在声明时的顺序,从0开始

枚举类型实现了Comparable()接口,可以通过comareTo与其他枚举值比较,比较的大小就是ordinal的大小。

4、枚举类型可以用switch中,不过枚举值不能带枚举类型前缀

        switch (size){
            case LARGE:
                System.out.println("this is lager!");break;
            case MEDIUM:
                System.out.println("this is mediu!");break;
            case SMALL:
                System.out.println("this is small!");break;
            default:
                System.out.println("unknow size!");break;
        }

5、valueOf(String) 、values()
valueOf返回字符串对应的枚举值,values()返回一个包括所有枚举值的数组,顺序与声明时的顺序一致。

      System.out.println(Arrays.toString(Size.values()));//[LARGE, MEDIUM, SMALL]
        Size  size1=Size.valueOf("LARGE");
        System.out.println(size1.toString());//LARGE

三、枚举的实现

枚举类型会被编译器转换为一个对应的类,这个类继承了Enum类,Enum有两个实例变量:name,ordinal,在构造方法中需要传递,
1、转换后的类是一个final类,不能被继承;
2、枚举值实际上时静态变量,被final修饰,无法被修改;
3、values方法时编译器添加的,内部有一个values数组保持所有的枚举值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值