在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的更多相关文章

  1. 【转】java枚举类型enum的使用

    原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...

  2. 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)

    java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...

  3. 深入理解Java枚举类型(enum)

    https://blog.csdn.net/javazejian/article/details/71333103 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(en ...

  4. 【转】掌握java枚举类型(enum type)

    原文网址:http://iaiai.iteye.com/blog/1843553 1   背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用 ...

  5. java枚举类型enum的使用

    2015-10-24 java达人 Java 中 的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型.要了解枚举类型,建议大家先打开jdk 中的E ...

  6. java 枚举类型enum

    简单介绍 Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型.要了解枚举类型,建议大家先打开jdk 中的Enum 类简单读一下,这个类 ...

  7. Java枚举类型 enum

    定义 An enum type is a special data type that enables for a variable to be a set of predefined constan ...

  8. Java枚举类型enum使用详解

      java的Enum枚举类型终于在j2se1.5出现了.之前觉得它只不过是鸡肋而已,可有可无.毕竟这么多年来,没有它,大家不都过得很好吗?今日看<Thinking in Java>4th ...

  9. 全面解读Java中的枚举类型enum的使用

    这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始sw ...

随机推荐

  1. [Algorithms] Heap and Heapsort

    Recently I reviewed the classic heapsort algorithm and implement it according to contents in Introdu ...

  2. flex组合流动布局实例---利用css的order属性改变盒子排列顺序

    flex弹性盒子 <div class="container"> <div class="box yellow"></div> ...

  3. 【Git和GitHub】学习笔记

    1. 书籍推荐: 先看一本比较简单并且好的入门书籍 Git - Book https://git-scm.com/book/zh/v2 2. 书籍理解: Git 有三种状态,你的文件可能处于其中之一: ...

  4. MySQL主从不一致修复

    场景: 线上正在服务的库由于紧急主从切换导致主从不一致,报错信息如下: Last_Error: Coordinator stopped because there were error(s) in t ...

  5. 用Python xlwt建立excel表格

    1.下载xlwt的Python库 (This is a library for developers to use to generate spreadsheet files compatible w ...

  6. 【转】Spring中@Component的作用

    今天在写程序的时候看见一个以前没有见过的注解(@Component),在网上查找过后,经过实践,决定把它记录下来. 1.@controller 控制器(注入服务) 用于标注控制层,相当于struts中 ...

  7. 解决: ./netapp.bin: error while loading shared libraries: libcaffe.so.1.0.0: cannot open shared object file: No such file or directory 运行时报错(caffe)

    caffe安装好后lib没有配置到/usr/lib或/usr/local/lib中,需手动配置: export LD_LIBRARY_PATH=/path_to_your_caffe/build/li ...

  8. django-admin详细设置

    Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸索总结出比较实用的配置.若你有什么比较好的配置 ...

  9. 流畅的python 字典和集合

    介绍 dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石.模块的命名空间.实例的属性和函数的关键字参数中都可以看到字典的身影.跟它有关的内置函数都在 __builtins__._ ...

  10. EJB远程客户端和本地客户端

    在客户端中使用企业bean 企业bean的客户端通过依赖注入或JNDI查询的方式获得对企业bean实例的引用. 依赖注入是获得对企业bean实例的引用的最简便的方法. (紧耦合的bean之间相互依赖, ...