iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 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://www.lsjlt.com/news/135545.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入浅出讲解Java中的枚举类
    目录一、枚举类的使用 二、如何定义枚举类 背景:类的对象只有有限个,确定的。举例如下: > 星期: Monday (星期一)、….、 Sunday (星期天) > 性别:...
    99+
    2022-11-12
  • Python深入浅出分析enum枚举类
    目录枚举类Enum总结枚举类Enum 枚举类,在企业开发中用的比较多 当我们需要定义常量时,一个办法是用大写的变量通过整数来定义,例如月份: # 当项目中需要使用12个月份时JAN ...
    99+
    2022-11-11
  • 【Java系列】深入解析枚举类型
    序言 即便平凡的日子仿佛毫无波澜,但在某个特定的时刻,执着的努力便会显现出它的价值和意义。 希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流 问题 思考一下这寄个问题,我们将围绕...
    99+
    2023-09-01
    java 开发语言 枚举
  • Java深入浅出讲解泛型与包装类
    目录1、什么是泛型2、泛型的语法3、泛型的上界4、通配符(1)通配符的上界(2)通配符的下界5、包装类1、什么是泛型 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指...
    99+
    2022-11-13
  • Java深入浅出讲解String类常见方法
    目录1.定义字符串2.字符串的存储3.String中常用的方法3.1字符串的比较3.2查找字符串3.3转换字符串4.StringBuilder和StringBuffer5.常量池1....
    99+
    2022-11-13
  • Java深入浅出讲解代理模式
    目录1、动态代理模式2、JDK动态代理3、JDK动态代理代码演示1、动态代理模式 动态代理的特点: 当代理对象的时候,不需要实现接口代理对象的生成,是利用JDK的API,动态的在内存...
    99+
    2022-11-13
  • 深入浅出讲解Java比较器及数学常用类
    背景:Java中的对象,正常情况下,只能进行比较:== 或 !=。不能使用 > 或 < ;但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。如...
    99+
    2022-11-12
  • 深入浅出讲解Java集合之Map接口
    目录一、Map接口继承树二、Map接口中的常用方法三、源码分析1.HashMap的底层实现原理?2.LinkedHashMap的底层实现原理(了解)四、Collections工具类一...
    99+
    2022-11-12
  • 深入浅出讲解Java集合之Collection接口
    目录一、集合框架的概述二、集合框架(Java集合可分为Collection 和 Map 两种体系)三、Collection接口中的方法的使用四、集合元素的遍历操作A. 使用(迭代器)...
    99+
    2022-11-12
  • 深入浅出讲解MySQL的并行复制
    一、并行复制的背景 首先,为什么会有并行复制这个概念呢? 1. DBA都应该知道,MySQL的复制是基于binlog的。  2. MySQL复制包括两部分,IO线程 和 SQL线程。 ...
    99+
    2022-10-18
  • Java深入浅出讲解多线程的概念到使用
    目录1.线程的几个相关概念2.线程的状态与生命周期3.线程的优先级与调度4.Java中多线程的创建4.1继承Thread类创建线程4.2实现Runnable接口创建线程5.多线程的同...
    99+
    2022-11-13
  • Java中I/O输入输出的深入讲解
    目录前言一、流概述二、输入/输出流1、输入流2、输出流三、File类1、文件的创建与删除1、File(String pathname)2、File(String parent,Str...
    99+
    2022-11-13
    javaio输入输出 I/O输入输出 java的io是什么
  • C语言深入浅出讲解指针的使用
    目录一、利用指针倒序字符串二、题目实例三、总结一、利用指针倒序字符串 void _reversal(char* left, char* right) { while (lef...
    99+
    2022-11-13
  • 深入浅析Java中的String类
    这期内容当中小编将会给大家带来有关深入浅析Java中的String类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。引题在Java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时...
    99+
    2023-05-31
    java string ava
  • 深入浅析Java中的Object类
    今天就跟大家聊聊有关深入浅析Java中的Object类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java中最基本的类j...
    99+
    2023-05-31
    java object ava
  • 深入浅析Java中的Properties类
    今天就跟大家聊聊有关深入浅析Java中的Properties类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java中Properties类的操作   ...
    99+
    2023-05-31
    java properties ava
  • 深入浅析Java中的 List类
    本篇文章给大家分享的是有关深入浅析Java中的 List类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复...
    99+
    2023-05-31
    java list ava
  • Java中枚举类的用法示例详解
    目录1.引入枚举类2.实现枚举类3.枚举类的使用注意事项4.枚举的常用方法5.enum细节1.引入枚举类 Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个...
    99+
    2022-11-13
  • C语言深入浅出讲解顺序表的实现
    目录1.线性表2.顺序表2.1 概念及结构2.2 提供接口2.3 接口实现今天起开始编写数据结构中的各种数据结构及算法的实现,说到顺序表,我们首先得了解下线性表。 1.线性表 线性表...
    99+
    2022-11-13
  • C++深入浅出讲解隐藏this指针的用法
    目录1.this指针的引出2.this指针的特性3.练习一下本篇文章我们将一起讨论在有趣的知识点--隐藏的this指针。本篇我们要使用到之前我们所学习到的C++类与对象,如果有各位小...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作