返回顶部
首页 > 资讯 > 后端开发 > Python >深入浅出讲解Java中的枚举类
  • 601
分享到

深入浅出讲解Java中的枚举类

2024-04-02 19:04:59 601人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、枚举类的使用 二、如何定义枚举类 背景:类的对象只有有限个,确定的。举例如下: > 星期: Monday (星期一)、….、 Sunday (星期天) > 性别:

背景:类的对象只有有限个,确定的。举例如下:
> 星期: Monday (星期一)、….、 Sunday (星期天)

> 性别: Man (男)、 Woman (女)
> 季节: spring (春节).…….. Winter (冬天)
> 支付方式: Cash (现金)、 WeChatPay (微信)、 Alipay (支付宝) BankCard (银
行卡)、 CreditCard (信用卡)
> 就职状态: Busy 、 Free 、 Vocation 、 Dimission
> 订单状态: Nonpayment (未付款)、 Paid (已付款)、 Fulfilled (已配货)、
Delivered (已发货)、 Return 退货》 Checked 已确认)

> 线程状态:创建、就绪、运行、阻塞、死立

一、枚举类的使用

1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类
2.当需要定义一组常量时,强烈建议使用枚举类
3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。

二、如何定义枚举类

方式一:jdk5.0之前,自定义枚举类


public class SeasonTest {
    public static void main(String[] args) {
        Season spring = Season.SPRING;
        System.out.println(spring);
    }
}
    class Season {
        //1.声明Season对象的属性:private final修饰
        private final String seasonName;
        private final String seasonDesc;
        //2.私有化类的构造器,并给对象属性赋值
        private Season(String seasonName, String seasonDesc) {
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }
        //3.提供当前枚举类的对各对象:public static final的
        public static final Season SPRING = new Season("春天", "春暖花开");
        public static final Season SUMMER = new Season("夏天", "夏日炎炎");
        public static final Season AUTUMN = new Season("秋天", "秋高气爽");
        public static final Season WINTER = new Season("冬天", "冰天雪地");
        //4.其他诉求1:  获取枚举类对象的属性
        public String getSeasonName() {
            return seasonName;
        }
        public String getSeasonDesc() {
            return seasonDesc;
        }
        //4.其他诉求2:提供toString()
        @Override
        public String toString() {
            return "Season{" +
                    "seasonName='" + seasonName + '\'' +
                    ", seasonDesc='" + seasonDesc + '\'' +
                    '}';
        }
    }

方式二:JDK5.0之后,可以使用enum关键字定义枚举类


public class SeasonTest1 {
    public static void main(String[] args) {
        Season1 summer = Season1.SUMMER;
        System.out.println(summer);
        System.out.println(Season1.class.getSuperclass());//java.lang.Enum
        //values():
        Season1[] values = Season1.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println(values[i]);
        }
        //valueOf(String objName):返回枚举类中对象时objName的对象。
        Season1 winter = Season1.valueOf("WINTER");
        //如果没有objName的枚举类对象,则抛异常:IllegalArgumentException
//        Season1 winter = Season1.valueOf("WINTER1");
        System.out.println(winter);
//        winter.show();
    }
    //使用enum关键字定义枚举类
    enum Season1 {
        //1.提供当前枚举类的对象,多个对象之间用","隔开,末尾对象";"结束
        SPRING("春天", "春暖花开"),
        SUMMER("夏天", "夏日炎炎"),
        AUTUMN("秋天", "秋高气爽"),
        WINTER("冬天", "冰天雪地");
        //1.声明Season对象的属性:private final修饰
        private final String seasonName;
        private final String seasonDesc;
 
        //2.私有化类的构造器,并给对象属性赋值
        private Season1(String seasonName, String seasonDesc) {
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }
        //4.其他诉求1:  获取枚举类对象的属性
        public String getSeasonName() {
            return seasonName;
        }
        public String getSeasonDesc() {
            return seasonDesc;
        }

使用enum关键字定义的枚举类实现接口的情况
情况一:实现接口,在enum类中实现抽象方法

情况二:让枚举类的对象分别实现接口中的抽象方法


public class SeasonTest1 {
    public static void main(String[] args) {
        //values():
        Season1[] values = Season1.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println(values[i]);
            values[i].show();
        }
    }
    interface Info {
        void show();
    }
    enum Season1 implements Info {
        SPRING("春天", "春暖花开") {
            @Override
            public void show() {
                System.out.println("春天在哪里");
            }
        },
        SUMMER("夏天", "夏日炎炎") {
            @Override
            public void show() {
                System.out.println("宁夏");
            }
        },
        AUTUMN("秋天", "秋高气爽") {
            @Override
            public void show() {
                System.out.println("秋天不回来");
            }
        },
        WINTER("冬天", "冰天雪地") {
            @Override
            public void show() {
                System.out.println("大约在冬季");
            }
        };
        private final String seasonName;
        private final String seasonDesc;
        private Season1(String seasonName, String seasonDesc) {
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }
        public String getSeasonName() {
            return seasonName;
        }
        public String getSeasonDesc() {
            return seasonDesc;
        }
}

到此这篇关于深入浅出讲解Java中的枚举类的文章就介绍到这了,更多相关Java 枚举类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 深入浅出讲解Java中的枚举类

本文链接: https://lsjlt.com/news/135545.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 深入浅出讲解Java中的枚举类
    目录一、枚举类的使用 二、如何定义枚举类 背景:类的对象只有有限个,确定的。举例如下: > 星期: Monday (星期一)、….、 Sunday (星期天) > 性别:...
    99+
    2024-04-02
  • Python深入浅出分析enum枚举类
    目录枚举类Enum总结枚举类Enum 枚举类,在企业开发中用的比较多 当我们需要定义常量时,一个办法是用大写的变量通过整数来定义,例如月份: # 当项目中需要使用12个月份时JAN ...
    99+
    2024-04-02
  • 【Java系列】深入解析枚举类型
    序言 即便平凡的日子仿佛毫无波澜,但在某个特定的时刻,执着的努力便会显现出它的价值和意义。 希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流 问题 思考一下这寄个问题,我们将围绕...
    99+
    2023-09-01
    java 开发语言 枚举
  • Java深入浅出讲解泛型与包装类
    目录1、什么是泛型2、泛型的语法3、泛型的上界4、通配符(1)通配符的上界(2)通配符的下界5、包装类1、什么是泛型 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指...
    99+
    2024-04-02
  • Java深入浅出讲解String类常见方法
    目录1.定义字符串2.字符串的存储3.String中常用的方法3.1字符串的比较3.2查找字符串3.3转换字符串4.StringBuilder和StringBuffer5.常量池1....
    99+
    2024-04-02
  • 进阶JAVA篇-深入了解枚举与抽象枚举
    目录       介绍一下枚举:           1.1枚举的概念           1.2具体如何来使用呢?           1.3对枚举小结           1.4抽象枚举概念           1.5对抽象枚举小结 ...
    99+
    2023-10-23
    java 开发语言
  • Java枚举类知识详细讲解
    本篇内容主要讲解“Java枚举类知识详细讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java枚举类知识详细讲解”吧!枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常...
    99+
    2023-06-02
  • Java浅析枚举类的使用
    目录1、枚举规则2、枚举的个数3、枚举类中常用函数4、实现枚举类5、枚举类的使用注意事项概念:有enum关键字修饰的类,成为枚举类 1、枚举规则 枚举类的对象可以有类里面定义,不支持...
    99+
    2024-04-02
  • Java深入浅出讲解代理模式
    目录1、动态代理模式2、JDK动态代理3、JDK动态代理代码演示1、动态代理模式 动态代理的特点: 当代理对象的时候,不需要实现接口代理对象的生成,是利用JDK的API,动态的在内存...
    99+
    2024-04-02
  • 深入浅出讲解Java比较器及数学常用类
    背景:Java中的对象,正常情况下,只能进行比较:== 或 !=。不能使用 > 或 < ;但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。如...
    99+
    2024-04-02
  • C#枚举类型的基础讲解
    本篇内容主要讲解“C#枚举类型的基础讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的基础讲解”吧!对于C#枚举类型不仅可以提高程序的可读性,而且可以减少因底层值发生改变而导致的程...
    99+
    2023-06-18
  • 深入浅出讲解Java集合之Map接口
    目录一、Map接口继承树二、Map接口中的常用方法三、源码分析1.HashMap的底层实现原理?2.LinkedHashMap的底层实现原理(了解)四、Collections工具类一...
    99+
    2024-04-02
  • 深入浅出讲解Java集合之Collection接口
    目录一、集合框架的概述二、集合框架(Java集合可分为Collection 和 Map 两种体系)三、Collection接口中的方法的使用四、集合元素的遍历操作A. 使用(迭代器)...
    99+
    2024-04-02
  • Java实例讲解枚举enum的实现
    目录一.枚举介绍1.自定义枚举实现(1)示例(2)测试结果2.enum关键字实现枚举(1)示例(2)测试结果3.enum关键字注意事项(1)示例一.枚举介绍 1.枚举是一组常量的集合...
    99+
    2024-04-02
  • Golang表示枚举类型的详细讲解
    枚举,是一种重要的数据类型,由一组键值对组成,通常用来在编程语言中充当常量的标识符。在主流行编程语言如 c、 java 等,都有原生支持。在 go 中,大家却找不到 enum 或者...
    99+
    2024-04-02
  • 深入浅出讲解MySQL的并行复制
    一、并行复制的背景 首先,为什么会有并行复制这个概念呢? 1. DBA都应该知道,MySQL的复制是基于binlog的。  2. MySQL复制包括两部分,IO线程 和 SQL线程。 ...
    99+
    2024-04-02
  • 浅谈一下Java中枚举的用法
    目录枚举(enum)定义一个季节的枚举类枚举类values()方法ordinal()方法 valueOf()方法枚举类成员枚举(enum) 枚举是一个被命名的整型常数的集合...
    99+
    2023-05-14
    Java枚举 Java枚举的用法
  • 深入浅出讲解Angular变更检测
    Angular 中的变更检测是一种用来将应用程序 UI 的状态与数据的状态同步的机制。当应用逻辑更改组件数据时,绑定到视图中 DOM 属性上的值也要随之更改。变更检测器负责更新视图以...
    99+
    2024-04-02
  • C++深入浅出讲解函数重载
    目录前言函数重载1.1 函数重载的概念1.2 函数重载的意义1.3 名字修饰(name Mangling)1.4 extern "C"前言 自然语言中,一个词可以...
    99+
    2024-04-02
  • C++深入浅出讲解缺省参数
    目录缺省参数定义用法缺省参数 一般情况下,函数调用时的实参个数应与形参相同,但为了更方便地使用函数,C++也允许定义具有缺省参数的函数,这种函数调用时,实参个数可以与形参不相同。 定...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作