zoukankan      html  css  js  c++  java
  • java08-枚举

    1.基本概念

      早期我们在定义一组常量的时候一般是使用一个接口,将常量定义成接口中的成员,同时接口中还有一些需要被子类实现的方法。从JDK1.5 开始,我们可以使用一种新的方式来定义常量

      这种新的方式就是枚举类型,我们只是用枚举来定义常量,方便程序的理解和维护。

    2.枚举的定义方式

      2.1 语法: 

            枚举定义的语法: enum 枚举名 {   枚举常量集合  }

            同时我们还可以通过小括号给每一个常量指定一个值

      2.2 注意事项

            枚举中不仅可以定义常量 同时还可以定义一些方法等,但一般不建议这样使用,一般只是用枚举来定义常量集合。

            枚举中的常量默认是public static final 的。

            可以使用小括号为枚举常量赋值,但是要手写私有的构造函数和手写返回值。(一般不建议使用)

       2.3 例子

     1 enum People{
     2     CHILD,
     3     KID,
     4     ADULT,
     5     OLDER;    
     6 }
     7 
     8 public class TestEnum {
     9     public static void main(String[] args) {
    10         for(People p:People.values()) {
    11             System.out.println(p);
    12         }
    13     }
    14 }
    CHILD
    KID
    ADULT
    OLDER

    3.枚举中的一些方法

        3.1 自定义值方法

              为枚举添加一个私有属性,手写私有构造方法和get/set  注意,一旦写了带参的私有构造方法就要求每一个常量都必须赋一个值。(因为无参构造被覆盖)

    enum People{
        /**
         * 由于写了带参私有构造方法
         * 无参构造方法被覆盖 
         * 所以每一项都必须有值
         */
        CHILD(0),
        KID(1),
        ADULT(2),
        OLDER(3);    
        
        private int value;//为枚举每一项常量定义一个int值
        
        private People(int val) { //手写私有构造方法 (必须私有化)
            this.value = val;
        }
        
        public int getValue() {
            return this.value;
        }
        
    }
    
    public class TestEnum {
        public static void main(String[] args) {
            for(People p:People.values()) {
                System.out.println(p +" 的值是:"+ p.getValue());
            }
        }
    }

    CHILD 的值是:0
    KID 的值是:1
    ADULT 的值是:2
    OLDER 的值是:3

     

        3.2 其他一些方法

  • 相关阅读:
    sudo
    Ansible模块
    Ansible自动化运维
    Sersync
    eclipse报错MA
    myeclipse报错MA
    通过StringBuilder的reverse()实现倒序
    位运算实现高效互换
    scanf("%s",s)与gets(s)
    异或运算符实现简单加密
  • 原文地址:https://www.cnblogs.com/xiaobai1202/p/10847866.html
Copyright © 2011-2022 走看看