Java 枚举类
- 如果要定义一个枚举类:
public enum Size { SAMLL, MEDIUM, LARGE, EXTRA, EXTRA_LARGE};
- 实际上,这个声明定义的类型是一个类,它刚好有4个实例,在此尽量不要构造新对象。
- 因此,在比较两个枚举类型的值时,永远不需要调用equals,而直接使用“==”就可以了。
- 如果需要的话,可以在枚举类型中添加一些构造器、方法和域。当然,构造器知识在构造枚举常量的时候被调用。下面是一个示例:
public enum Size
{
SMALL("S"), MEDIUM("M"), LARGE("L"),EXTRA_LARGE("XL");
private String abbreviation;
private Size(String abbreviation) {this.abbreviation = abbreviation;}
public String getAbbrevation() {return abbrevation;}
}
- 所有的枚举类型都是Enum类的子类。它们继承了这个类的许多方法,其中最有用的一个是toString,这个方法能够返回枚举常量名。例如,Size.SMALL.toString()将返回字符串"SMALL".
toString的逆方法是静态方法valueOf。例如,语句:
Size s = Enum.valueOf(Size.class, "SMALL");
将s设置为Size.SMALL.
- 每个枚举类型都有一个静态的value方法,它将返回一个包含全部枚举值的数组,而且该数组中的元素严格保持其在enum中声明的顺序,因此你可以在循环中使用values返回的数组。例如,如下调用:
Size[] values = Size.values();
返回包含元素Size.SMALL, Size.MEDIUM,Size.LARGE和Size.EXTRA_LARGE的数组。
- ordinal方法返回enum声明中枚举常量的位置,位置从0开始计数。例如,Size.MEDIUM.ordinal()返回1.
- 可以向enum中添加方法。如果打算定义自己的方法,那么必须在enum序列化的最后添加一个分号。同时,Java要求你必须先定义enum实例。如果在定义enum实例之前定义了任何方法或属性,那么在编译时就会得到错误。
- enum中构造器与普通方法没有什么区别,因为有少许限制之外,enum就是普通的类。所以,我们可以使用enum做许多事情。
- 一般将enum的构造器声明为private,但对于它的访问属性而言,并没有什么实质性的变化,因为(即使不声明为private)我们只能在enum定义的内部使用期构造器创建enum实例。一旦enum定义结束,编译器就不允许我们在使用其构造器来创建任何实例楽
Java 枚举类的更多相关文章
- Java枚举类在生产环境中的使用方式
前言 Java枚举在项目中使用非常普遍,许多人在做项目时,一定会遇到要维护某些业务场景状态的时候,往往会定义一个常量类,然后添加业务场景相关的状态常量.但实际上,生产环境的项目中业务状态的定义大部 ...
- java 枚举类 enum 总结
枚举定义: enum是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量 ...
- java 枚举类小结 Enum
好久没有接触枚举类了,差不多都忘了,今天抽出个时间总结一下吧.说实话,枚举类确实能够给我们带来很大的方便. 说明:枚举类它约定了一个范围,可以理解成只可以生成固定的几个对象让外界去调用,故枚举类中的构 ...
- java枚举类
enum关键字用于定义枚举类,若枚举只有一个成员, 则可以作为一种单例模式的实现方式. 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰. 枚举类的使用 priva ...
- 【JAVA】浅谈java枚举类
一.什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二.为什么不用静态常量来替代枚举类呢? public static final int SEASO ...
- Java枚举类enum
枚举类enum是JDK1.5引入的,之前都是用public static final int enum_value来代替枚举类的.枚举类enum是一种特殊的类,它默认继承了类java.lang.Enu ...
- java枚举类(enum) 基础知识讲解
枚举类是在java 5后新增的,可以用于封装常量,并且还可以为常量的使用提供一些方法. 定义枚举类的语法: public enum EnumName{ 成员1(A,B...),成员2(A,B...), ...
- Java枚举类使用
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...
- Java 枚举类详解
1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...
随机推荐
- snmp ubuntu/centos--
软件安装 切换到系统管理员帐户 安装snmp确认snmp代理已安装rpm -q net-snmp如果未安装,安装snmpyum install net-snmp 设置开机自动运行snmp/sbin/c ...
- 用CSS3实现瀑布流布局
以前使用瀑布流都要用js,现在有了css3,可以轻松实现了. 掌握点: 1.column-count 把div中的文本分为多少列 2.column-width 规定列宽 3.column-gap 规定 ...
- dynamoDb 使用
如果写入时候结构体为: type Item struct { DeviceId string `dynamo:"deviceid"` Play int `dynamo:" ...
- php字符截取
mb_substr($str,0,2) 0 索引的位置 2 长度 mb_substr($str,0,-1) 最后一位如果是负数 表示从前面0开始到后面-1 0,-1都是索引
- LINUX 设置ll的时候显示日期的格式
1.临时更改显示样式,当回话结束后恢复原来的样式 export TIME_STYLE='+%Y-%m-%d %H:%M:%S' # 直接在命令中执行即可 2.永久改变显示样式,更改后的效果会保存 ...
- Peter Norvig:自学编程,十年磨一剑
若要在某一领域内达到专家级的水平,其关键在于"审慎地重复",也就是说,并非是机械地,一遍又一遍地练习,而是要不断地挑战自我,试图超越自身当前的水平,通过不断的尝试挑战,并在尝试的过 ...
- ThinkPHP3.1快速入门(1)基础
学习网址:http://www.thinkphp.cn/document/60.html
- js 四舍五入
举例excel: ROUND 会四舍五入的:ROUNDDOWN 取小数点后两位数据,不管进位问题:ROUNDUP 取小数点后两位数据,只要有第三位小数都会进位的.关键看你取数的要求 在js如果要求 ...
- 向ES6看齐,用更好的JavaScript(一)
众所周知,JavaScript作为弱类型语言,一直是精华与糟粕共存,许多"诡异"的地方我们不得不接受并使用.其实ES6(又称ECMAScript 2015)在2015年6月就已经正 ...
- LDAP的Schema
Schema是LDAP的一个重要组成部分,类似于数据库的模式定义,LDAP的Schema定义了LDAP目录所应遵循的结构和规则,比如一个 objectclass会有哪些属性,这些属性又是什么结构等等, ...