Java——枚举(enum)

目录

1、什么是枚举?

2、枚举格式

3、枚举书写的三种形式

3.1、第一种(普通参数)

3.2、第二种(构造方法赋初始值)

3.3、第三种(重写抽象方法)

4、枚举常用方法


 

1、什么是枚举?

枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。引用于百度百科

2、枚举格式

声明枚举时必须使用 enum 关键字

public enum 枚举类名(){

​		枚举项1,枚举项2,枚举项3,枚举4。。。;

}

3、枚举书写的三种形式

3.1、第一种(普通参数)

任意两个枚举成员不能具有相同的名称,且它的常数值必须在该枚举的基础类型的范围之内,多个枚举成员之间使用逗号分隔。

public enum Demo {
    /* 通过JDK5提供的枚举来做枚举类*/
    LEFT,RIGHT,FRONT,BEHIND;
}
public class Test {
    public static void main(String[] args) {
        Demo d=Demo.BEHIND;
        System.out.println(d);//BEHIND
    }
}

3.2、第二种(构造方法赋初始值)

public enum Demo {
    /* 通过JDK5提供的枚举来做枚举类*/
    LEFT("左"),RIGHT("右"),FRONT("前"),BEHIND("后");

    private  String name;

    Demo(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}
public class Test {
    public static void main(String[] args) {
        Demo d=Demo.BEHIND;
        System.out.println(d);//BEHIND
        System.out.println("-------------------");
        String name = Demo.BEHIND.getName();
        System.out.println(name);//后
        String name1 = Demo.FRONT.getName();
        System.out.println(name1); //前
    }
}

3.3、第三种(重写抽象方法)

public enum Demo1 {
    LEFT{
        @Override
        public void show() {
            System.out.println("左:重写了show方法");
        }
    },RIGHT{
        @Override
        public void show() {
            System.out.println("右:重写了show方法");
        }
    },FRONT{
        @Override
        public void show() {
            System.out.println("前:重写了show方法");
        }
    },BEHIND{
        @Override
        public void show() {
            System.out.println("后:重写了show方法");
        }
    };
    public abstract void show();
}
public class Test {
    public static void main(String[] args) {
        Demo d=Demo.BEHIND;
        System.out.println(d);//BEHIND
        System.out.println("-------------------");
        String name = Demo.BEHIND.getName();
        System.out.println(name);
        String name1 = Demo.FRONT.getName();
        System.out.println(name1);
        System.out.println("-------------------");
        Demo1 d1=Demo1.RIGHT;
        d1.show();//右:重写了show方法
        Demo1 d2=Demo1.BEHIND;
        d2.show();//后:重写了show方法
    }
}

4、枚举常用方法

方法名说明
values()以数组形式返回枚举类型的所有成员
valueOf()将普通字符串转换为枚举实例
compareTo()比较两个枚举成员在定义时的顺序
ordinal()获取枚举成员的索引位置
name()返回当前对象名(常量名),子类中不能重写
toString()返回的是当前对象名;子类可以重写该方法,用于返回对象的属性信息
public class Test2 {
    public static void main(String[] args) {
        //将字符串转换成已有的枚举对象,要求字符串必须为枚举中存在的常量,否则报异常!
        Demo s1 = Demo.valueOf("RIGHT");
        Demo s2 = Demo.valueOf("LEFT");
        System.out.println(s1);//RIGHT
        System.out.println("-----------------");
        String ss = s1.toString();
        System.out.println(s1);//RIGHT
        System.out.println("-----------------");
        //返回当前枚举类中所有的常量对象
        Demo[] values = Demo.values();
        //遍历枚举数组
        for (Demo value : values) {
            System.out.println(value);
        }
        System.out.println("-----------------");
        //返回当前对象名(常量名),子类中不能重写
        int ordinal = s1.ordinal();
        System.out.println(ordinal);
        System.out.println("-----------------");
        //比较两个枚举常量的大小(编号),返回的结果是两个枚举常量的编号相减得到的数
        int i = s1.compareTo(s2);
        System.out.println(i);
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值