zoukankan      html  css  js  c++  java
  • java 枚举类型 enum

      在java SE5中添加了枚举类型,即enum关键字。在这之前,当你需要创建一个整形常量集时,但是这些枚举值并不会必然的将其自身的取值限制在这个常量集的范围之内,因此这样做的显得不安全,也不方便使用。现在有了enum,就解决了上述的问题。

      虽然enum看起来像一张新的数据类型,事实上enum是一个类,并且也有自己的方法(toString()  ordinal()  static values())。在使用的时候我们可以把enum当作一种创建数据类型的方式。

      枚举类型的实例是常量,因此都用大写字母表示。

    1、先创建一个枚举类型

     1 package enumDemo;
     2 /**
     3  * 创建enum类型
     4  * @author dyf
     5  *
     6  */
     7 public class Enum {
     8     public enum test{
     9         NOT,
    10         MILD,
    11         MEDIUM,
    12         HOT,
    13         FLAMING;
    14     }
    15 }

    2、测试enum自己的方法(toString()  ordinal()  static values()),

     1 package enumDemo;
     2 /**
     3  * 测试enum自己的方法toString()  ordinal()  static values()
     4  */
     5 import enumDemo.Enum.test;
     6 
     7 public class TestEnum {
     8     public static void main(String[] args) {
     9         //-----------------------------------------------
    10         /**
    11          * 枚举类的使用
    12          */
    13         test e = test.MEDIUM;
    14         System.out.println(e);
    15         //-----------------------------------------------
    16         
    17         /**
    18          * 创建enum时,编译器会自动添加一些有用的特性。如
    19          * toString 方法,显示enum实例的名字
    20          * ordinal() static values()方法,表示某个特定enum常量的声明顺序
    21          */
    22         for (test t : test.values()) {
    23             System.out.println(t + "---ordinal---" + t.ordinal());
    24         }
    25         
    26         //-----------------------------------------------
    27         
    28     }
    29 }

    打印结果:

    MEDIUM
    NOT---ordinal---0
    MILD---ordinal---1
    MEDIUM---ordinal---2
    HOT---ordinal---3
    FLAMING---ordinal---4

    3、enum和switch结合使用,由于switch是要在有限的可能值集合中进行选择,因此与enum正式绝佳的组合。

     1 package enumDemo;
     2 /**
     3  * enum与switch结合使用
     4  */
     5 import enumDemo.Enum.test;
     6 
     7 public class TestEnumAndSwitch {
     8     test t;
     9     public TestEnumAndSwitch(test t){
    10         this.t = t;
    11     }
    12     
    13     public void describe(){
    14         System.out.println("This TestEnumAndSwitch is ");
    15         switch(t){
    16         case NOT: System.out.println("not spicy at all");
    17             break;
    18         case MILD: System.out.println("=========1");
    19         case MEDIUM: System.out.println("a little hot");
    20             break;
    21         case HOT: System.out.println("=========2");
    22         case FLAMING: System.out.println("=========3");
    23         default: System.out.println("maybe too hot");
    24         }
    25     }
    26     
    27     public static void main(String[] args) {
    28         TestEnumAndSwitch 
    29             t1 = new TestEnumAndSwitch(test.NOT),
    30             t2 = new TestEnumAndSwitch(test.MEDIUM),
    31             t3 = new TestEnumAndSwitch(test.HOT);
    32         t1.describe();
    33         t2.describe();
    34         t3.describe();
    35     }
    36 }

    打印结果:

    This TestEnumAndSwitch is
    not spicy at all
    This TestEnumAndSwitch is
    a little hot
    This TestEnumAndSwitch is
    =========2
    =========3
    maybe too hot

  • 相关阅读:
    通过修改manifest文件来解决Vista/Win7/Win8/win10下应用程序兼容性问题
    windows下django开发环境配置
    Django网站实例效果
    手动下载Linux安装包perf
    【Nginx】负载配置
    【VIM】常用命令
    【CentOS7】SCP服务器间传文件
    【CentOS7】目录统计du命令
    【CentOS7】安装GraphicsMagick
    【Nginx】限流配置
  • 原文地址:https://www.cnblogs.com/dyfbk/p/6906494.html
Copyright © 2011-2022 走看看