Java枚举类型的使用

地下水热耦合模拟FEFLOW建模 2.3 依据讲解内容,练习构建地下水数值模型(例二),学会各种源汇项、边界条件、时间序列、节点参数的添加及模拟结果的导出。对于真实模型,学习如何建立概念模型、数学模型,练习模型的各种参数和源汇项输入,进行溶质运移、水热模拟。3.通过多种实践案例应用,掌握实践工作中常见项目的模型搭建及特殊问题处理方法。4.1学习水热模型抽灌模式,网格剖分、边界条件、初始温度场赋值。3.3练习模型的各种参数和源汇项输入,进行水流和溶质运移模拟。2.掌握水热耦合的模拟方法及典型项目应用问题处理。2.4根据模拟结果, 阅读详情

情景

在之前开发C++的时候使用过枚举类型,但也不是很熟练,直到现在写Java对于枚举类型掌握可谓是一塌糊涂,下决心学习这个类型,并能够熟练使用提高开发效率。之前的时候因为一直未使用这种enum枚举,,别人提到枚举的时候下意识地就会记起来自己还不会使用心里总会涌上一股惊慌,很怕别人提问我相关地概念以及使用,是真的插不上话。现在到了项目开发的优化阶段使用枚举能够简化开发的代码样式,项目中真的要使用了,现在认真的学习一下,而且好像真的不是很难。


是什么

[枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。本质就是,一个类里定义几个静态变量,每个变量都是这个类的实例。

为什么

为什么使用枚举类型,因为在项目中使用枚举类型的的时候会显得比较易读,且容易理解代码的功能和逻辑
对应配置信息一般用于配置信息,比如颜色 RED=1、ORANGE=2、YELLOW=3、GREEN=4,这就可以创建一个枚举类型,你可以把数字存储到数据库,在代码里面显示文字描述,这样使得代码易懂。(PS你非得在数据库中存储汉字也行)。
用于错误信息返回:成功=1、失败=-1、部分成功=0,这样你在代码里面写的时候,别人一看就一目了然,你写0、1、-1谁知道什么意思。当然了最终的值还是数字,可是再别人读你程序的时候,看到的是有具体意思的单词。说了这么多,可能还是有点迷惑,下面就是项目中的栗子。

怎么用

要求

编程规约:
阿里巴巴出品的编程规约
[参考]枚举类名建议带上Enum后缀, 枚举成员名称需要全大写, 单词间用下划线隔开。
说明: 枚举其实就是特殊的常量类, 且构造方法被默认和强制是私有。
正例: DealStatusEnum, 成员名称: SUCCESS/UNKOWN_REASON

常见用法

用法一:常量

在JDK1.5 之前,我们定义常量都是: public static final… 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 这里给出一个不带自定义成员变量和方法的比较简单的一个实例,当然枚举类可以有自己的成员变量和方法。

Java代码

public enum Color {  
  RED, GREEN, BLANK, YELLOW 
} 
用法二:switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

Java代码

enum Signal {  
    GREEN, YELLOW, RED  
}  

public class TrafficLight {  

    Signal color = Signal.RED;  
    public void change() {  
        switch (color) {  
        case RED:  
            color = Signal.GREEN;  
            break;  
        case YELLOW:  
            color = Signal.RED;  
            break;  
        case GREEN:  
            color = Signal.YELLOW;  
            break;  
        }  
    }  
}  

但是这仍然不涉及到自定义的成员变量,现在例如我们在很多场景下都要通过Signal枚举实例对象获取相对应的中文信息,那我们创建Signal这个枚举类时,可不可以让Signal中的每一个实例对象都有一个变量means来记录中文信息,并且包含有getMeans()和setMeans()方法呢。答案是肯定的,而且这种做法在企业开发中很常见,在用法三当中

用法三:向枚举中添加新方法

如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。

而且 Java 要求必须先定义 enum 实例。

Java代码

public enum Color {  
	//这里之所以每一个实例对象都能有两个属性是因为定义了两个成员变量String name以及int index,取值或者设置的时候只要使用对应的get/set方法
    RED("红色", 1), 
    GREEN("绿色", 2), 
    BLANK("白色", 3), 
    YELLO("黄色", 4);  
    // 成员变量  
    private String name;  
    private int index;  
    // 构造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    // 普通方法  
    public static String getName(int index) {  
        for (Color c : Color.values()) {  
            if (c.getIndex() == index) {  
                return c.name;  
            }  
        }  
        return null;  
    }  
    // get set 方法  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getIndex() {  
        return index;  
    }  
    public void setIndex(int index) {  
        this.index = index;  
    }  
}  
用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。
Java代码

public enum Color {  
    RED("红色", 1), 
    GREEN("绿色", 2), 
    BLANK("白色", 3), 
    YELLO("黄色", 4);  
    // 成员变量  
    private String name;  
    private int index;  
    // 构造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    //覆盖方法  
    @Override  
    public String toString() {  
        return this.index+"_"+this.name;  
    }  
} 
SAP生产版本导入避坑大全:从‘黄灯’到‘绿灯’,详解CM_FV_MKAL_CONSISTENCY_CHECK检查函数 本文深入解析SAP生产版本导入过程中的常见问题,特别是通过`CM_FV_MKAL_CONSISTENCY_CHECK`检查函数从‘黄灯’异常到‘绿灯’正常的修复方法。涵盖静态与动态校验机制、典型异常场景诊断及批量导入最佳实践,帮助SAP运维人员高效解决生产版本管理难题。 阅读详情

相关推荐

腾讯股票接口API(1)——根据股票代码获取详情

获取股票简要信息,找来找去也没有找到官方的文档,都是复制粘贴的,这里先简单记录一下。 1.简要信息 以贵州茅台为例: http://qt.gtimg.cn/q=s_sh600519 // sh600519是贵州茅台的股票代码,根据自己的关键字拼接URL 可以直接在Android项目中请求,会得到如下一串字符串: v_s_sh600519="1~贵州茅台~600519~2075.95~42.95~2.11~38930~794942~~26078.04~GP-A"; 这里v_s代表简要信息,sh600519

GeofferySun的专栏 6万+

Ts 中使用const宏常量

在ts里使用 宏常量可以直接使用 const 定义在类外, 但此时在其他脚本中无法引用, 所以可以用 export 修饰一下, 此时它作为全局宏。有时候我们在做类的划分时, 并不希望将一个宏划分出去,此时我们希望将一个宏定义在类内,但属性定义并不允许 const 修饰,此时我们可以用2.0的 readonly 特性,结合 static 使用,这样我们就可以得到一个有 常量 特性的属性了。 示例: /** 类外定义并导出,使其他页面类可以引用 */ export const MAIN_MAP_LOOP_

crazy_yun的博客 4846

Potplayer + LAVFilters + madVR 配置教程

文章目录Potplayer + LAVFilters + madVR 配置教程工具安装篇设置调教1.potplayer播放器设置加载LAVFilters和madVR1.选择“源滤镜/分离器”选项,选择“滤镜/解码器管理”2.“添加外部滤镜”3.浏览到刚才LAVFilters解压的文件夹,分别添加图示项。4.添加后回到管理界面设置,点击左边的”LAV AudioDecoder”,将右边”音频解码器”...

re 16万+

前端TS学习笔记 (TS几种类型)

/定义customArray1是数值类型 则都可以用customArray1去定义//定义customArray2是字符串类型 则都可以用customArray2去定义let arr2:customArray2='小明'//定义customArray3既可以是数值又可以是字符串数组类型 则都可以用customArray3去定义。

m0_58849641的博客 3611

别再手动跑定时任务了!Spring Boot项目5分钟集成xxl-job保姆级教程(含Docker部署调度中心)

本文提供Spring Boot项目快速集成xxl-job的保姆级教程,包括Docker部署调度中心的详细步骤。通过实战案例展示如何构建企业级分布式任务调度系统,解决传统定时任务的资源竞争、单点故障等问题,提升开发效率与系统可靠性。

weixin_30315905的博客 291

无人机正射影像DOM孔洞修补的另一种方法并调整影像色差(附GlobalMapper24安装包(中文注册版))

之前介绍了用GlobalMapper联合PhotoShop对无人机正射影像DOM进行破洞修补,但是ps修图非常耗时,需要耐心和足够的细心。对于大面积的水域空洞,纹理特征都差不多,没必要修补得那么细致入微,本文介绍另一种直接在Global Mapper中快速修补大面积水域空洞的方法。 一、Global Mapper中检查数据 二、使用“数字化”工具,绘制需要补洞的多边形区域 三、导出绘制好的矢量区域 四、打开影像下载软件,选择影像图源 五、下载影像 六、调整影像的色差 七、合并影像并输出 八、检查结果数据

从地图看世界的专栏 1549

为什么要用typeScript

typeScript 冲冲冲1. ts 能带来什么好处? 1. ts 能带来什么好处? 静态类型能够在开发的时候发现潜在的问题 定义了函数,但是忘记传递参数 2. 编写时更友好的提示 3. 更好的可读性

七元八元 2679

生成对抗网络(GAN)在数据增强中的应用【附核心实战代码】

生成对抗网络(GAN)由Ian Goodfellow等人在2014年提出。它包含两个主要的部分:生成器(Generator)和判别器(Discriminator)。生成器负责生成假数据,而判别器则用于区分输入的数据是真实的还是由生成器生成的。通过这种对抗过程,生成器不断优化自己,生成越来越真实的样本。最终,生成器生成的样本几乎无法被判别器区分与真实数据。

一键难忘的博客 3120

TS — 声明变量的关键字const,let,var的使用和区别

声明变量的关键字const,let,var的使用和区别

sjsjsjsj1010的博客 5060

PD详解—第一章—Type-C连接

Type-C连接 今天大师匈下班比较早,再给大家侃一侃PD,希望大家支持。 PD和Type-c的关系 首先讲一下PD快充的实现步骤,本文主要是Source端(电源),Sink端的差不多也一样,只是策略不同而已。 TypeC连接-->广播电源能力Source capbility(数据交互)->打电压电流->等待其他指令。 所以typec连接是第一步,很多人会从字面意思理解typec连接,这不就是把线给插上去就好了吗? 不知道有没有优秀的同学想到正确答案; 正确答案:typec连接的本质是为

大师匈的博客 1万+

腾讯微搭低代码开发实战电子书:医疗挂号小程序

本书通过一个完整的“医疗挂号小程序”项目,深度讲解腾讯微搭(WeDa)低代码平台在复杂业务场景下的实战应用。从登录体系搭建、用户注册,到就诊人管理、科室排班与预约下单,全程遵循“配置+逻辑+实战”的思路,带领读者从零实现具备商业级可用性的医疗挂号小程序,掌握低代码开发的核心技巧与业务落地能力。

低代码布道师的博客 954

ts的基本语法(笔记)

export {} } // 定义函数的时候,this的类型,必须要和调用的时候的类型一致 function Person(this : ObjType , name : string) {

m0_65519288的博客 1万+

(一)激光线扫描-三维成像原理

激光线扫描是一种使用激光作为光源,通过特定的扫描设备(如光学镜头、电机驱动的镜头或电子扫描设备)将激光束引导到目标表面,并按照预定的路径进行扫描的技术。这种技术通常用于测量、检测、打印、切割等多种应用中。

FlyWine的博客 3630

【Java】枚举类型

枚举类型是一种特殊的数据类型,用于定义一组固定的命名常量。枚举类型提供了一种更强大、更安全和更易读的方式来表示一组相关的常量。在Java中,枚举类型是通过使用enum关键字来定义的。枚举类型可以包含一个或多个枚举常量,每个常量都是枚举类型的实例。枚举常量是在枚举类型中预先定义的,它们是唯一的、已命名的对象。

qq_61635026的博客 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java枚举类型enum的使用

最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义。既然不明白就抽时间研究下吧。

0溺水的鱼O的专栏 20万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java中枚举类型应该如何使用

枚举类型的使用 在Java中枚举类型的关键字是enum 它的主要作用是给对象中属性的取值规定一个特定的范围,比如说定义一个学生类的sex性别属性,如果给这个属性定义的类型是String类型那么可能会出现类似“人妖”之类的性别,这不是我们想要的,我们想要规定性别只能取’Man’或者’Woman’,这时候我们就可以创建一个枚举类型将里面添加两个常量’Man’和’Woman’ public enum Genders { MAN , WOMAN } 而后我们再将sex的数据类型设置成我们刚刚定义的枚

zlsdgg的博客 1237

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java枚举类型介绍

简介         Java的枚举类型用于在某些东西可以枚举出来的时候,我们可以把它定义为枚举类型,然后把其中包含的可选值一一枚举。打个比方,我们现在有一堆数字,大致可以分为四种类型,整型、浮点型、金额和百分比。整型的我就需要按整型显示,如果是浮点型则要求保留两位小数,如果是金额则要求按千分位展示,如果是百分比则要求显示对应的百分比。为此我们就定义了一个枚举类型NumberType,其一共四个枚

Elim的博客 7959

Java基础_枚举类型

Java面试_枚举类型一、Java 5 之前定义"枚举类型"二、Java 5之后的枚举类型三、 java.lang.Enum类原码分析三、switch-case 与 枚举1. switch-case2. switch-case与枚举四、 枚举练习1.枚举中的方法2.枚举实现接口 一、Java 5 之前定义"枚举类型" Java 5之前是没有枚举类型的,在Java 5之前程序员们使用以下方式来解决与...

田磊的博客 1770

java 枚举类型_Java中的枚举类型详解

枚举类型介绍枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。举个例子来说明一下,如果希望为彩虹描绘出七种颜色,你可以在 Java 程序中通过常量定义方式来实现。Publicstatic cla...

weixin_39613637的博客 937

Java枚举类型

目录 1 JDK1.5引入了枚举类型 2 创建枚举类型 3 枚举底层 4 枚举的使用 5 java 中枚举类enum的values()方法的详解 6 枚举其数组化 7Java 查看枚举类成员变量个数 8 城市枚举 1 JDK1.5引入了枚举类型 枚举类型的定义包括枚举声明和枚举体。格式如下: enum枚举名{ 枚举体(常量列表) } 枚举体就是放置一些常量。我们可以写出我们的第一个枚举类型,如示例8-27所示: 2 创建枚举类型 en...

赵广陆 1113

java 枚举类型enum用法_【转】java枚举类型enum的使用

原文网址:http://blog.youkuaiyun.com/wgw335363240/article/details/6359614java枚举类型enum的使用最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum定义,所以也都没有注意过,面对突入起...

weixin_36439481的博客 572

Java基础之枚举类型Enum的使用

Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER("0","收入"),NON_BUSINESS("2","支出"); private String index; private String name; AccruedCleanEnum(String inde...

Lan_Xuan 688

java枚举类型

java枚举类型enum 枚举类型是java 5新增特性的一部分,是一种特殊的数据类型(既是一种类类型但是又比类类型多些特殊的约束) 枚举定义的方式: public enum Day{ MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }    定义枚举类型使用的关键字是e...

711

JAVA 枚举类型详解

JAVA 枚举类型详解前言一、枚举是什么?二、自定义枚举三、JAVA枚举类型总结 前言 JDK1.5之前,只能使用自定义实现枚举,JDK1.5后,引入了枚举类型,本文将从自定义枚举类型的创建开始,详解JAVA的枚举类型。 一、枚举是什么? 可以理解为,一个JAVA类持有本类的N个静态类型属性,且这些属性都是final的,指向的对象不可改变,在初始化时就已确定。在使用时,直接通过类名获取,每个属性均为单例。 二、自定义枚举 代码如下(示例): package com.example.enumTest;

weixin_38730113的博客 1147

Java 中枚举类型的使用

大家在做项目的时候,总会涉及到一些系统常量需要定义,很可能大家会这样写:  package mytest; public class Simple { public static final int INT_EXP_STATUS_UNSUBMIT = 1;//报销状态-未提交状态 public static final int INT_EXP_STATUS_SUBMITTED = 2;//报销

u012834898的专栏 781
上一篇: IDEA中开启SpringBoot项目的热部署能力
下一篇: SpringBoot项目启动出现required a bean of type ‘XXX‘ that could not be found
rain start to pour
博客等级 码龄10年 29粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值