java笔记java中的枚举(enum)和枚举类

Posted 棉花糖灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java笔记java中的枚举(enum)和枚举类相关的知识,希望对你有一定的参考价值。

1. 声明枚举

  • 枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。

  • 任意两个枚举成员不能具有相同的名称,且它的常数值必须在该枚举的基础类型的范围之内,多个枚举成员之间使用逗号分隔

  • 可以通过枚举类型名直接引用常量

枚举声明的语法如下:

enum-modifiers enum enumname:enum-base {
    enum-body,
}

其中,enum-modifiers 表示枚举的修饰符主要包括 public、private 和 internal;enumname 表示声明的枚举名称;enum-base 表示基础类型,默认是int型;enum-body 表示枚举的成员,它是枚举类型的命名常数

enum Signal {
    // 定义一个枚举类型
    GREEN,YELLOW,RED
}

public class TrafficLight {
    Signal color = Signal.RED;
    public void change() {
        switch(color) {
            case RED:
                color = Signal.GREEN;
                break;
            case YELLOW:
                color = Signal.RED;
                break;
            case GREEN:
                color = Signal.YELLOW;
                break;
        }
    }
}

2. 枚举类

  • Java 中的每一个枚举都继承自 java.lang.Enum 类
  • 当定义一个枚举类型时,每一个枚举类型成员都可以看作是 Enum 类的实例,这些枚举成员默认都被 final、public, static 修饰

(1) Enum类的常用方法

方法名称描述
values()以数组形式返回枚举类型的所有成员
valueOf()将普通字符串转换为枚举实例
compareTo()比较两个枚举成员在定义时的顺序
ordinal()获取枚举成员的索引位置
public class TestEnum {
    public enum Sex {
        // 定义一个枚举
        male,female;
    }
    public static void main(String[] args) {
        compare(Sex.valueOf("male"));    // 比较
    }
    public static void compare(Sex s) {
        for(int i = 0;i < Sex.values().length;i++) {
            System.out.println(s + "与" + Sex.values()[i] + "的比较结果是:" + s.compareTo(Sex.values()[i]));
        }
    }
}

(2) 为枚举类添加方法

public class Test {
    public enum Color {
        RED("红色",1),GREEN("绿色",2),WHITE("白色",3),YELLOW("黄色",4);
        // 成员变量
        private String name;
        private int index;
        // 构造方法
        private Color(String name,int index) {
            this.name = name;
            this.index = index;
        }
        // 覆盖方法
        @Override
        public String toString() {
            return this.index + "-" + this.name;
        }
    }
    public static void main(String[] args) {
        System.out.println(Color.RED.toString());    // 输出:1-红色
    }
}

以上是关于java笔记java中的枚举(enum)和枚举类的主要内容,如果未能解决你的问题,请参考以下文章

java中的enum

Java 基础知识点 笔记总结

java枚举类型enum用法

java怎么声明枚举类型

Java:Effective java学习笔记之 用enum代替int常量

java 枚举enum定义的方法与位置。