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 其他一些方法

原文地址:https://www.cnblogs.com/xiaobai1202/p/10847866.html