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

news/2024/5/19 0:23:17 标签: 枚举, 枚举类, java, enum

1. 声明枚举

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

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

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

枚举声明的语法如下:

java">enum-modifiers enum enumname:enum-base {
    enum-body,
}

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

java">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()获取枚举成员的索引位置
java">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) 为枚举类添加方法

java">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-红色
    }
}


http://www.niftyadmin.cn/n/968286.html

相关文章

【java笔记】Java中的Optional类

Optional类 Optional 是个容器&#xff1a;它可以保存类型T的值&#xff0c;或者仅仅保存nullOptional 类的引入很好的解决空指针异常 1. 常用方法 boolean equals(Object obj)&#xff1a;判断其他对象是否等于 OptionalT get()&#xff1a;如果在这个Optional中包含这个值…

WPF改成xbap

除了将<Window></Window>改成<Page></Page> URI的路径也要做相应调整&#xff0c;在调试时和发布时都应该对应相应的路径&#xff0c;否则程序会因为找不到资源而出逻辑或者运行错误 当然在xbap中&#xff0c;因为Page并非继承Window&#xff0c;所以…

Android system document

2019独角兽企业重金招聘Python工程师标准>>> Android System Structure: Android 是一个开放的软件系统&#xff0c;为用户提供了丰富的移动设备开发功能&#xff0c;从下至上包括4 个层次&#xff0c;如图1 所示。其中第一层是Linux 内核层&#xff0c;包括Linux …

【java笔记】Java中的泛型和类通配符

泛型 泛型的本质是参数化类型&#xff0c;也就是说所操作的数据类型被指定为一个参数 E&#xff1a;Element&#xff08;在集合中使用&#xff0c;因为集合中存放的是元素&#xff09;T&#xff1a;Type&#xff08;Java 类&#xff09;K&#xff1a;Key&#xff08;键&#…

各浏览器hack,hack

2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"&…

【java笔记】Java中的异常(exception)和异常处理

异常处理 java的异常可以分为三种&#xff1a; 检查性异常&#xff1a;程序员不能预见的异常&#xff0c;如打开一个不存在的文件运行时异常&#xff1a;程序员可以避免的异常&#xff0c;如空指针异常错误&#xff1a; 错误不是异常&#xff0c;而是脱离程序员控制的问题&am…

解决ubuntu无法正常关机

ubuntu10.10正式版&#xff0c;无法正常关机 1.打开终端&#xff0c;输入sudo gedit /etc/modules在文件最后一行回车&#xff0c;另起一行添加apm power_off1保存&#xff0c;关闭2.在终端输入sudo gedit /etc/rc0.d/S90halt找到如下代码&#xff1a;hddown"-h"if …

【java笔记】Java中的多线程

多线程 Java 提供了三种创建线程的方法&#xff1a; 通过实现 Runnable 接口通过继承 Thread 类本身通过 Callable 和 Future 创建线程 注意&#xff1a; Java中真正能创建新线程的只有Thread类对象 1. 通过实现 Runnable 接口 通过实现Runnable接口来实现多线程的步骤&am…