从零开始的JAVA学习笔记(七):枚举

本文详细介绍了Java中的枚举类,包括如何使用enum关键字创建枚举类,枚举类的常用方法如values()、valueOf()和compareTo(),以及如何在枚举类中实现接口并定制对象的方法。枚举类在switch语句中的使用也被提及,展示了其在有限对象场景下的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

枚举类Enum

若类的对象只要有限确定个,可以将类的所有对象全部声明为常量,即为枚举类

  • JDK5之前通常使用私有化构造器,声明静态常量方式来构建枚举类
  • JDK5之后,使用**enum来声明类枚举类**

1. 创建枚举类

  • 使用enum来声明枚举类
  • 在类中最开始声明需要枚举的对象,无需声明权限以及显示new使用,分隔对象
  • enum默认继承父类为java.lang.Enum
enum WeekEnum {
    // 最开始声明枚举类对象 用 , 分割  无需声明权限和 构造
    MONDAY(1, "星期一"),
    TUESDAY(2, "星期二"),
    WEDNESDAY(3, "星期三"),
    THURSDAY(4, "星期四"),
    FRIDAY(5, "星期五");


    private final int value;
    private final String name;

    // 1. 构造器无需声明权限
    WeekEnum(int value, String name) {
        this.value = value;
        this.name = name;
    }
}

枚举类输出打印时,默认是名称

2. 枚举类常用方法

方法含义描述
A.values()值组输出枚举类A的全部对象组成的数组
A.valueOf(n)获取获取枚举类A中名称为n的对象,若不存在或大小写错误将抛出异常
A.comparaTo(b)比较枚举类默认实现了Comparable接口可以进行比较

特别的枚举了可以使用switch进行分支

3. 枚举对象定制接口

当枚举类实现接口时候若在类中实现接口方法则所有对象该方法均一致,因此可以使用内部类的方式在给每个对象复写接口方法

enum WeekEnum implements Info{
    // 最开始声明枚举类对象 用 , 分割  无需声明权限和 构造
    MONDAY(1, "星期一"){
        @Override
        public void info() {
            System.out.println("当前为"+this.name()+"!?");
        }
    },
    TUESDAY(2, "星期二"){
        @Override
        public void info() {
            System.out.println("当前为"+this.name()+"!??");
        }
    },
    WEDNESDAY(3, "星期三"){
        @Override
        public void info() {
            System.out.println("当前为"+this.name()+"!!");
        }
    },
    THURSDAY(4, "星期四"){
        @Override
        public void info() {
            System.out.println("当前为"+this.name()+"!!!");
        }
    },
    FRIDAY(5, "星期五"){
        @Override
        public void info() {
            System.out.println("当前为"+this.name()+"!!!终于放假了!");
        }
    };


    private final int value;
    private final String name;

    // 1. 构造器无需声明权限
    WeekEnum(int value, String name) {
        this.value = value;
        this.name = name;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值