zoukankan      html  css  js  c++  java
  • 枚举举例说明

    枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。

    1、常量的使用 

         在JDK1.5之前,我们定义常量都是:public static fianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

    1
    2
    3
    4
    5
    6
    7
    package com;
     
    public enum Color {
         
         RED, GREEN, BLANK, YELLOW 
     
    }

      使用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    package com;
     
    public class B {
     
        public static void main(String[] args) {
     
     
            System.out.println( isRed( Color.BLANK ) ) ;  //结果: false
            System.out.println( isRed( Color.RED ) ) ;    //结果: true
     
        }
     
     
        static boolean isRed( Color color ){
            if ( Color.RED.equals( color )) {
                return true ;
            }
            return false ;
        }
     
    }

      或者 switch 的使用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    package com;
     
    public class B {
     
        public static void main(String[] args) {
     
            showColor( Color.RED );
     
        }
     
        static void showColor(Color color){
            switch ( color ) {
            case BLANK:
                System.out.println( color );
                break;
            case RED :
                System.out.println( color );
                break;
            default:
                System.out.println( color );
                break;
            }
             
        }
    }

      

    2、自定义函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    package com;
     
    public enum Color {
         
         RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
         
         
        private String name ;
        private int index ;
         
        private Color( String name , int index ){
            this.name = name ;
            this.index = index ;
        }
         
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getIndex() {
            return index;
        }
        public void setIndex(int index) {
            this.index = index;
        }
         
     
    }

      使用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    package com;
     
    public class B {
     
        public static void main(String[] args) {
     
            //输出某一枚举的值
            System.out.println( Color.RED.getName() );
            System.out.println( Color.RED.getIndex() );
     
            //遍历所有的枚举
            for( Color color : Color.values()){
                System.out.println( color + "  name: " + color.getName() + "  index: " + color.getIndex() );
            }
        }
     
    }

      结果

    红色
    1
    RED name: 红色 index: 1
    GREEN name: 绿色 index: 2
    BLANK name: 白色 index: 3
    YELLO name: 黄色 index: 4

    总结:

    1、枚举的本质是类,在没有枚举之前,仍然可以按照java最基本的编程手段来解决需要用到枚举的地方。枚举屏蔽了枚举值的类型信息,不像在用public static final定义变量必须指定类型。枚举是用来构建常量数据结构的模板,这个模板可扩展。枚举的使用增强了程序的健壮性,比如在引用一个不存在的枚举值的时候,编译器会报错。枚举的更多用法还需要在开发中去研究创造,Java5、Java6增加了不少新的特性,技术在升级,对程序员来说就要学习,如果你热爱java的话。否则别人用到新特性的代码你看不懂,那才叫郁闷。

    2、枚举在Java家族中只占了很小的一块比重,所以我在项目中用枚举的地方不是很多,毕竟,一个项目是很多人开发维护的,用一个陌生的东西,会给其他的同事造成阅读困难。所以常量大都是用public static final 来定义的。

  • 相关阅读:
    买房的贷款时间是否是越长越好?https://www.zhihu.com/question/20842791
    asp.net cookie and session
    leelazero and google colab
    download file by python in google colab
    physical processor, core, logical processor
    通过powershell操作eventlog
    openxml in sql server
    get the page name from url
    How to Execute Page_Load() in Page's Base Class?
    Difference between HttpContext.Request and Request
  • 原文地址:https://www.cnblogs.com/javaboy2018/p/9451564.html
Copyright © 2011-2022 走看看