java 枚举类型 enum
在java SE5中添加了枚举类型,即enum关键字。在这之前,当你需要创建一个整形常量集时,但是这些枚举值并不会必然的将其自身的取值限制在这个常量集的范围之内,因此这样做的显得不安全,也不方便使用。现在有了enum,就解决了上述的问题。
虽然enum看起来像一张新的数据类型,事实上enum是一个类,并且也有自己的方法(toString() ordinal() static values())。在使用的时候我们可以把enum当作一种创建数据类型的方式。
枚举类型的实例是常量,因此都用大写字母表示。
1、先创建一个枚举类型
package enumDemo;
/**
* 创建enum类型
* @author dyf
*
*/
public class Enum {
public enum test{
NOT,
MILD,
MEDIUM,
HOT,
FLAMING;
}
}
2、测试enum自己的方法(toString() ordinal() static values()),
package enumDemo;
/**
* 测试enum自己的方法toString() ordinal() static values()
*/
import enumDemo.Enum.test; public class TestEnum {
public static void main(String[] args) {
//-----------------------------------------------
/**
* 枚举类的使用
*/
test e = test.MEDIUM;
System.out.println(e);
//----------------------------------------------- /**
* 创建enum时,编译器会自动添加一些有用的特性。如
* toString 方法,显示enum实例的名字
* ordinal() static values()方法,表示某个特定enum常量的声明顺序
*/
for (test t : test.values()) {
System.out.println(t + "---ordinal---" + t.ordinal());
} //----------------------------------------------- }
}
打印结果:
MEDIUM
NOT---ordinal---0
MILD---ordinal---1
MEDIUM---ordinal---2
HOT---ordinal---3
FLAMING---ordinal---4
3、enum和switch结合使用,由于switch是要在有限的可能值集合中进行选择,因此与enum正式绝佳的组合。
package enumDemo;
/**
* enum与switch结合使用
*/
import enumDemo.Enum.test; public class TestEnumAndSwitch {
test t;
public TestEnumAndSwitch(test t){
this.t = t;
} public void describe(){
System.out.println("This TestEnumAndSwitch is ");
switch(t){
case NOT: System.out.println("not spicy at all");
break;
case MILD: System.out.println("=========1");
case MEDIUM: System.out.println("a little hot");
break;
case HOT: System.out.println("=========2");
case FLAMING: System.out.println("=========3");
default: System.out.println("maybe too hot");
}
} public static void main(String[] args) {
TestEnumAndSwitch
t1 = new TestEnumAndSwitch(test.NOT),
t2 = new TestEnumAndSwitch(test.MEDIUM),
t3 = new TestEnumAndSwitch(test.HOT);
t1.describe();
t2.describe();
t3.describe();
}
}
打印结果:
This TestEnumAndSwitch is
not spicy at all
This TestEnumAndSwitch is
a little hot
This TestEnumAndSwitch is
=========2
=========3
maybe too hot
java 枚举类型 enum的更多相关文章
- 【转】java枚举类型enum的使用
原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...
- 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)
java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...
- 深入理解Java枚举类型(enum)
https://blog.csdn.net/javazejian/article/details/71333103 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(en ...
- 【转】掌握java枚举类型(enum type)
原文网址:http://iaiai.iteye.com/blog/1843553 1 背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用 ...
- java枚举类型enum的使用
2015-10-24 java达人 Java 中 的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型.要了解枚举类型,建议大家先打开jdk 中的E ...
- java 枚举类型enum
简单介绍 Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型.要了解枚举类型,建议大家先打开jdk 中的Enum 类简单读一下,这个类 ...
- Java枚举类型 enum
定义 An enum type is a special data type that enables for a variable to be a set of predefined constan ...
- Java枚举类型enum使用详解
java的Enum枚举类型终于在j2se1.5出现了.之前觉得它只不过是鸡肋而已,可有可无.毕竟这么多年来,没有它,大家不都过得很好吗?今日看<Thinking in Java>4th ...
- 全面解读Java中的枚举类型enum的使用
这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始sw ...
随机推荐
- Caused by: java.lang.IllegalArgumentException: @EnableAsync annotation metadata was not injected
需要注意的是ComponentScan 不能扫描 org.springframework 否则会报错,要扫描指定的package才行
- 超哥带你学网络编程部分blog
https://www.cnblogs.com/clschao/articles/9593164.html 网络编程 https://www.cnblogs.com/clschao/articles ...
- XP系统中IIS访问无法显示网页,目前访问网站的用户过多。终极解决办法
无法显示网页 目前访问网站的用户过多. -------------------------------------------------------------------------------- ...
- 详细介绍Redis的几种数据结构以及使用注意事项(转)
原文:详细介绍Redis的几种数据结构以及使用注意事项 1. Overview 1.1 资料 <The Little Redis Book>,最好的入门小册子,可以先于一切文档之前看,免费 ...
- oracle创建表空间、用户和表以及sys和system的区别
一.oracle的3个内置账号(口令管理)scott(示范账户) tiger 内置账号system 系统管理员 操作用户sys 超级管理员 操作数据 conn system/sasa;show use ...
- git常用命令总结(转载)
Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git in ...
- PyMySQL防止SQL注入
一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. 二.SQL注入攻击的总体 ...
- python 各种魔法方法
目录 自定义序列 反射
- Dora.Interception, 为.NET Core度身打造的AOP框架:不一样的Interceptor定义方式
相较于社区其他主流的AOP框架,Dora.Interception在Interceptor提供了完全不同的编程方式.我们并没有为Interceptor定义一个接口,正是因为不需要实现一个预定义的接口, ...
- [设计模式]State模式
<Java与模式> 又称状态对象模式.状态模式是对象的行为模式.GOF95 一个对象的行为取决于一个或者多个动态变化的属性,这样的属性叫做状态.这样的对象叫做有状态的对象(stateful ...