java枚举类的常见用法
枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。
java中的Enum类型更像是一个特殊的class,它可以有自己的数据域和方法。
java中的Enum类型有如下特征:
1、他不能有public构造函数,用来保证其无法实例化。
2、所有的枚举类型是public static final
3、Enum重载了toString方法,因此我们如果调用Color.BLUE.toString()默认返回字符串”BLUE”.
4、Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用.valueOf(“BLUE”)将返回Color.BLUE.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。
5、Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。
6、Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。
用法一:常量
import java.util.Arrays; /**
* Created by N3verL4nd on 2016/11/21.
*/ enum Color{
RED, GREEN, BLUE
} public class HelloWorld {
public static void main(String[] args) {
Color color = Color.valueOf("RED");
System.out.println(color.toString()); Color[] arr = Color.values();
System.out.println(Arrays.toString(arr));
}
}
用法二:switch
import java.util.Arrays; /**
* Created by N3verL4nd on 2016/11/21.
*/ enum Color{
RED, GREEN, BLUE
} public class HelloWorld {
public static void main(String[] args) {
Color color = Color.BLUE;
switch (color){
case RED:
System.out.println("RED");
break;
case GREEN:
System.out.println("GREEN");
break;
case BLUE:
System.out.println("BLUE");
break;
default:
break;
}
}
}
用法三:向枚举中添加新方法
/**
* Created by N3verL4nd on 2016/11/21.
*/ enum Color{
RED("this is red"), GREEN("this is green"), BLUE("this is blue"); private String desc; private Color(String desc){
this.desc = desc;
} public String getDesc() {
return desc;
}
} public class HelloWorld {
public static void main(String[] args) {
Color red = Color.RED;
System.out.println(red + ": " + red.getDesc());
}
}
用法四:覆盖枚举的方法
/**
* Created by N3verL4nd on 2016/11/21.
*/ enum Color{
RED("this is red"), GREEN("this is green"), BLUE("this is blue"); private String desc; private Color(String desc){
this.desc = desc;
} public String getDesc() {
return desc;
} @Override
public String toString() {
switch (this){
case RED:
return "Color.RED";
case GREEN:
return "Color.GREEN";
case BLUE:
return "Color.BLUE";
default:
return "";
}
}
} public class HelloWorld {
public static void main(String[] args) {
Color red = Color.RED;
System.out.println(red.toString() + ": " + red.getDesc());
}
}
java枚举类的常见用法的更多相关文章
- Java 枚举7种常见用法
(转)原创地址:http://blog.lichengwu.cn/java/2011/09/26/the-usage-of-enum-in-java/ JDK1.5引入了新的类型--枚举.在 Java ...
- JAVA中enum的常见用法
JAVA中enum的常见用法包括:定义并添加方法.switch.遍历.EnumSet.EnumMap 1.定义enum并添加或覆盖方法 public Interface Behaviour{ void ...
- Java枚举类在生产环境中的使用方式
前言 Java枚举在项目中使用非常普遍,许多人在做项目时,一定会遇到要维护某些业务场景状态的时候,往往会定义一个常量类,然后添加业务场景相关的状态常量.但实际上,生产环境的项目中业务状态的定义大部 ...
- Date类的常见用法——JavaSE基础
Date类的常见用法 Date类属于java.util包 因此需要导入Date类 Date() 分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒). Date(long da ...
- Java枚举类使用
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...
- Java 枚举类详解
1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...
- 夯实Java基础系列14:深入理解Java枚举类
目录 初探枚举类 枚举类-语法 枚举类的具体使用 使用枚举类的注意事项 枚举类的实现原理 枚举类实战 实战一无参 实战二有一参 实战三有两参 枚举类总结 枚举 API 总结 参考文章 微信公众号 Ja ...
- Java枚举类与注解详解——一篇文章读懂枚举类与注解详
目录 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举类实现接口 二.注解 ① 生成文档相关注解 ②注解在编译时进行格式检查 ③注解跟踪代码的 ...
- Java 枚举类
如果要定义一个枚举类: public enum Size { SAMLL, MEDIUM, LARGE, EXTRA, EXTRA_LARGE}; 实际上,这个声明定义的类型是一个类,它刚好有4个实例 ...
随机推荐
- $CH5302$ 金字塔 区间$DP$/计数类$DP$
CH Sol f[l][r]表示l到r这段区间对应的金字塔结构种数 发现是f[l][r]是可以由比它小的区间推出来的 比如已知f[l+1][k],f[k+1][r],不难想到f[l][r]+=f[l+ ...
- 「BZOJ1385」「Baltic2000」Division expression 解题报告
Division expression Description 除法表达式有如下的形式: \(X_1/X_2/X_3.../X_k\) 其中Xi是正整数且\(X_i \le 1000000000(1 ...
- 小小知识点(十五)——origin pro 2018 安装和消除demo字样
安装 1.安装过成中选择语言为中文或者英文,安装完成后可在注册表中切换语言. 2.安装过程中使用序列号 中文版:DF2W8-9089-7991320英文版:GF3S4-9089-7991320 3.安 ...
- Java之String类用法总结
String类概述: 1.String类代表字符串.Java 程序中的所有字符串字面值(如"abc")都作为此类的实例实现. 2.String是一个final类,代表不可变的字符序 ...
- Beetlex实现完整的HTTP协议
在传统网络服务中扩展中需要处理Bytes来进行协议的读写,这种原始的处理方式让工作变得相当繁琐复杂,出错和调试的工作量都非常大:组件为了解决这一问题引用Stream读写方式,这种方式可以极大的简化网络 ...
- 云原生 - 体验Istio的完美入门之旅(一)
作者:justmine 头条号:大数据达摩院 微信公众号:大数据处理系统 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处. 为了方便大家阅读,可以关注头条号或微信公众号,后 ...
- React Context 的用法
在React的官方文档中,Context被归类为高级部分(Advanced),属于React的高级API,但官方并不建议在稳定版的App中使用Context. The vast majority of ...
- python sys.modules 和 sys.path 及 __name__
1.sys.modules 存放已经缓存的模块 值是dict 2.sys.path 搜索路径 值是list 3.if __name__= __main__ 可以看成python的程序入口,如果直接执行 ...
- Qt Installer Framework翻译(7-2)
包文件夹 安装程序包含的组件,要么是内嵌的,要么可以从远程存储库加载.在这两种情况下,都需要为组件使用一种安装程序可以读取的文件格式和结构. 包文件夹结构 将所有组件放在相同的根文件夹中,即包文件夹. ...
- 学习 lind layerdiagram 第三弹