什么是java中的枚举法_enum枚举javajava,enum枚举使用详解+,总结

enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。

下面是我在使用 enum 过程中的一些经验和总结。

原始的接口定义常量

语法(定义)

创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式 Class Enum

这段代码实际上调用了7次 EnumString name, int ordinal:

遍历、switch 等常用操作

对enum进行遍历和switch的操作示例代码:

输出结果:

enum 对象的常用方法介绍

int compareToE o

比较此枚举与指定对象的顺序。

Class getDeclaringClass

返回与此枚举常量的枚举类型相对应的 Class 对象。

String name

返回此枚举常量的名称,在其枚举声明中对其进行声明。

int ordinal

返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。

String toString

返回枚举常量的名称,它包含在声明中。

static

输出结果:

给 enum 自定义属性和方法

给 enum 对象加一下 value 的属性和 getValue 的方法:

输出结果:

EnumSet,EnumMap 的应用

原理分析

enum 的语法结构尽管和 class 的语法不一样,但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.Enum。EnumTest 经过反编译javap com.hmw.test.EnumTest 命令之后得到的内容如下:

所以,实际上 enum 就是一个 class,只不过 java 编译器帮我们做了语法的解析和编译而已。

总结

可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 审计 漏洞函数_Java Web代码审计流程与漏洞函数

常见框架与组合常见框架Struts2SpringMVCSpring Boot框架执行流程View层:视图层Controller层:表现层Service层:业务层Dom层:持久层常见组合SpringStruts2HibernateSpringSpringMVCMybatisSpring BootMybatis代码审计方法根据业务功…

java前期_【JAVA】前期环境配置

一、java的环境配置及在eclipse中如何安装JRE或JDK环境eclipse下载地址:JDK下载地址:1)安装JDK或JRE注:JDK使用与开发者运用,其中包含了开发环境和运行环境。而JRE只包含了java的运行环境。2)配置设置执行路径UNiX:在C…

php截取指定字符串之后,php截取字符串(截取指定字符串之间的字符串)

一、PHP截取两个指定字符后边的字符$a "123abc#456";$b (strpos($a,""));$c (strpos($a,"#"));echo substr($a,$b1,$c-1);二、常用截取字符串技巧。//构造字符串$str "ABCDEFGHIJKLMNOPQRSTUVWXYZ";echo "原字符串:…

php 日志按天截取,Laravel 日志管理:按日期切割日志

日志存储Laravel 默认的错误文件记录在一个文件里,随着时间的推移,此文件将会变得巨大,不方便查阅。我们可以通过修改 config/app.php 配置文件中的 log 选项来配置 Laravel 使用的存储机制。如果你希望每天产生日志都存放在不同的文件中&…

php xcache 方法,php xcache 解密

NO.2 /index.php?actionmd5webcrack 很强大,需要登陆论坛才能解密,点击右上角的“register”进行注册,都是一些简单的单词,应该能看懂吧?...() A.PHP B.JSP D.Ajax 4.配置 ...假设$aarray(‘x’,’y’);,则$aarray_pad...xcache 15 四个模块 Admin Common Member Article 用户…

ecshop category.php?id=4,categoryall.php

//by 琅琊源码 QQ:27392236define(IN_ECS, true);require dirname(__FILE__) . /includes/init.php;if ((DEBUG_MODE & 2) ! 2) {$smarty->caching true;}require ROOT_PATH . /includes/lib_area.php;$area_info get_area_info($province_id);$area_id $area_info[r…

php 获取key的位置,PHP获取当前所在目录位置的方法

本文实例讲述了PHP获取当前所在目录位置的方法。分享给大家供大家参考。具体分析如下:如果要获取脚本文件的目录,要应用函数getcwd()来实现。函数声明如下:string getcwd ( void ) ;成功执行后返回当前目录字符串,失败返回FALSE。…

java8收集器,Java 8中的收集器collectionAndThen()方法

collectingAndThen()Java Collectors类中的方法使Collector适应于执行其他完成转换。它返回执行下游收集器动作的收集器,然后执行附加的结束步骤。语法如下。static Collector collectingAndThen(Collector downstream, Functionfinisher)在这里,参数T-…

php 精度运算,PHP BC 库(任意精度数字运算) | 网游世界

留意:备选参数$scale以设置运算精度(保留小数位)。bcscale(设置运算精度)bool bcscale ( int $scale )说明:设置运算精度(保留小数位),成功返回TRUE否则为FALSE。bcadd(加法运算)string bcadd ( string $left_operand , string $right_operan…

php 不允许外部访问,[日常] 解决mysql不允许外部访问

1.在端口已经开放的情况下,ubuntu mysql 3306允许远程访问vim /etc/mysql/mysql.conf.d/mysqld.cnf注释#bind-address 127.0.0.12.给用户授权允许远程访问:grant all privileges on *.* to root"%" identified by "pwd" with grant option;flush privileg…

elementary安装Java,elementary os怎么样安装java

elementary os的安装方法elementary os 的安装镜像文件准备好以后,这里以虚拟机上安装为例,配置好以后启动虚拟机进入安装界面。在初始化安装界面中先选择“中文简体”,再点击“安装elementary os”按钮随后系统会显示硬件安装需求界面&#…

java jni框架,Java JNI 简明教程(一)——传智播客JNI笔记(王泽佑)

package cn.itcast;public calss TestNative {public native void sayHello();public static void main(String[] arg){}}2. 用javah.exe生成包含native方法的C/C头文件javah -jni(默认)javah cn.itcast.TestNative //由类名执行生成C/C头文件生成的头文件内容:JNIE…

java自定义变量解析,Thymeleaf内置对象、定义变量、URL参数及标签自定义属性

如标题所述,这篇文章主要讲述Thymeleaf中的内置对象(list解析、日期格式化、数字格式化等)、定义变量、获取URL的参数和在页面标签中自定义属性的应用。如果对Thymeleaf的基本使用、maven依赖等不清楚的可以先阅读我的另一篇文章《Thymeleaf 之 初步使用》。Control…

linux php curl.so,linux中php如何安装CURL扩展方法

如果php已经在系统编译好,后来又需要添加新的扩展。一种方式就是重新完全编译php,另一种方式就是单独编译扩展库,以extension的形式扩展。下面以安装curl扩展为例:1、下载curl安装包。(我的php是4.4.4的,下载最新的cur…

matlab线性拉伸函数,采用线性变换对图像的每一个像素灰度作线性拉伸-Read.PPT

采用线性变换对图像的每一个像素灰度作线性拉伸-Read第4章 图像增强(1) 4.1 图像增强概述 图像增强(image enhancement)的定义: 在图像的获取过程中,由于多种因素的影响,导致图像质量退化。图像增强是对退化图像的某些特征,如边缘…

php js 循环对象属性,js 遍历对象的属性的代码_javascript技巧

如:Function.prototype.addMethodfunction(methodName,func){if(!this.prototype[methodName]){this.prototype[methodName]func;//给原型增加方法,此方法会影响到该类型的实例上}return this.prototype;//返回原型,此类型实例可以进行链形调…

php连接数据库navicat,navicat数据库如何连接php

第一步,打开Navicat,新建数据库。第二步,在数据库中新建表。相关推荐:《Navicat for mysql使用图文教程》第三步,保存表。第四步,表中添加数据。第五步,打开ide,输入以下php代码&…

每日一题:LCR 095.最长公共子序列(DP)

题目描述: 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些…

php自动合并,php实现合并数组并去除重复的方法

php实现合并数组并去除重复的方法发布时间:2020-08-12 10:35:05来源:亿速云阅读:99作者:小新这篇文章主要介绍了php实现合并数组并去除重复的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这…

oracle存储数据方式,Oracle 数据类型及存储方式

Oracle 数据类型及存储方式袁光东 原创概述通过实例,全面而深入的分析oralce的基本数据类型及它们的存储方式。以ORACLE 10G为基础,介绍oralce 10g引入的新的数据类型。让你对oracle数据类型有一个全新的认识。揭示一些不为人知的秘密和被忽略的盲点。从…