Java--枚举类型(枚举类型介绍 & 定义枚举类型 & 枚举类型的使用 & 枚举类型的注意事项 & 遍历枚举项)

01: Java–枚举类型(枚举类型介绍 & 定义枚举类型 & 枚举类型的使用 & 枚举类型的注意事项 & 遍历枚举项)

02: Java–枚举类型(枚举类型实现接口 & 枚举类型之间的比较 & 枚举类型用于switch语句)

1. 枚举类型

  • 枚举类型的主要作用就是管理常量

1.1 大量使用常量来表示数据存在以下问题:

示例:

    public static final String WEI_XIN = "weixin";
    public static final String WEI_XIN_URL = "https://weixin.qq.com/";
    public static final String ZHI_FU_BAO = "zhifubao";
    public static final String ZHI_FU_BAO_URL = "https://www.alipay.com/";

问题:

  1. 代码不够简介
  2. 不能很好的对数据进行分类,支付类型和支付接口地址靠人工通过命名关联在一起容易出错,常量越多越不方便管理。对于大型项目的开发类似的配置有很多,如果有一种简洁、分类配置常量的方式将会大大提高我们的生产效率。

1.2 枚举类型介绍

在这里插入图片描述


1.3 定义枚举类型

在这里插入图片描述

PayEnum.java

package character1;

/**
 * MethodName: PayEnum
 * Description: 支付参数的枚举类型
 */
public enum PayEnum {
    /*
    枚举项,采用全部大写的方式命名
    枚举项就是一个常量对象(内存地址不变的对象),可以在定义的时候调用构造方法

    不加括号WEI_XIN_PAY 或者 WEI_XIN_PAY() 表示调用无参构造方法
     */
    WEI_XIN_PAY("weixin", "https://weixin.qq.com/"),
    ZHI_FU_BAO_PAY("zhifubao", "https://www.alipay.com/");

    private String payName;// 支付名称
    private String payUrl;// 支付地址

    //    定义构造方法, 枚举类型的构造方法是private
    private PayEnum(String payName, String payUrl) {
        this.payName = payName;
        this.payUrl = payUrl;
    }

    //    get/set方法
    public String getPayName() {
        return payName;
    }

    public void setPayName(String payName) {
        this.payName = payName;
    }

    public String getPayUrl() {
        return payUrl;
    }

    public void setPayUrl(String payUrl) {
        this.payUrl = payUrl;
    }
}

小结:

相比较于这种方式

    public static final String WEI_XIN = "weixin";
    public static final String WEI_XIN_URL = "https://weixin.qq.com/";
    public static final String ZHI_FU_BAO = "zhifubao";
    public static final String ZHI_FU_BAO_URL = "https://www.alipay.com/";

``
上面的枚举类型看着就舒服多了。


1.4 枚举类型的使用

    public static void main(String[] args) {
        System.out.println(PayEnum.WEI_XIN_PAY.getPayName());
        System.out.println(PayEnum.WEI_XIN_PAY.getPayUrl());
    }

在这里插入图片描述


1.5 枚举类型的注意事项

  • 每个枚举类型都继承java.lang.Enum,所以枚举类型不可以再继承其他类型。
  • 枚举项就是枚举类型的对象(实例),一般使用大写字母加下划线(和常量命类似),一个枚举项表示一个常量项,多个枚举类型之间使用逗号分隔。
  • 枚举类型的构造方法必须使用private私有:构造方法为private目的就是为了不让你用new来创建该类型的对象,而枚举类型的个数必须是确定的(根据枚举体的作用定义)所以它必须是private。
  • 通过"枚举类名.枚举项名称"取访问指定的枚举项。

1.6 遍历枚举项

第一种方式: 通过反射

    public static void main(String[] args) {
        System.out.println("第一种通过反射");
        Class clz = PayEnum.class;
        for (Object obj : clz.getEnumConstants()) {
            System.out.println(obj);
            System.out.println(((PayEnum) obj).getPayName());
            System.out.println(((PayEnum) obj).getPayUrl());
            System.out.println("---------------------------");
        }
    }

在这里插入图片描述

第二种通过枚举静态方法values():

    public static void main(String[] args) {
        System.out.println("第二种通过枚举静态方法values()");
        for (PayEnum rate : PayEnum.values()) {
            System.out.println(rate);
            System.out.println(rate.getPayName());
            System.out.println(rate.getPayUrl());
            System.out.println("-------------------------------");
        }
    }

在这里插入图片描述



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeJiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值