Java
Python前端运维数据库
Java
Java
  • 新特性
    • Record
    • Optional
  • 面向对象
    • 面向对象基础
    • 构造方法
    • 继承与多态
    • 接口
    • 修饰符
    • 代码块
    • 接口(Interface)
    • 枚举类
  • IO流
    • IO
      • 字节流
      • 字符流
      • 缓冲流
      • 转换流
      • 操作ZIP
      • File 对象
    • NIO
      • Channel和Buffer
      • 异步文件通道AsynchronousFileChannel
      • Selector
      • Path/Files/Pipe
  • 反射
  • 内存分配
  • 集合
    • 简介
    • List
    • Set
    • Map
    • EnumMap
  • 日期与时间
    • Date和Calendar
    • Java8 新时间 ✨
      • LocalDateTime
      • ZonedDateTime
      • Duration
    • 时间格式化
      • SimpleDateFromat
      • DateTimeFormatter ✨
    • Instant
    • 实践
  • 网络编程
    • IP 地址
    • 网络模型
    • TCP 编程
    • UDP 编程
    • HTTP 编程
  • 加密和安全
  • 并发编程
    • 多线程
    • 线程与进程的区别
    • 线程组和线程优先级
    • 线程池
    • 线程锁
  • 异步任务
    • Future
    • CompletableFuture
      • 开启异步任务
      • 串行任务方法
      • 并行任务方法
      • 任务结束方法
      • 异常处理方法
      • 查看状态方法
      • 设置任务结果方法
  • 执行系统命令
  • Stream 流
    • Stream 流的创建
    • Stream 流串行与并行
    • Stream 流中间操作
    • Stream 流终端操作
  • Lambda 表达式
    • Lambda 表达式简介
    • Lambda 表达式语法
    • 方法引用
  • String
  • StringBuffer
由 GitBook 提供支持
在本页
  • 比较枚举类型
  • 方法
  • name() 方法
  • values() 方法
  • valueOf() 方法
  • ordinal() 方法
  • compareTo() 方法
  • 枚举内部成员

这有帮助吗?

  1. 面向对象

枚举类

枚举类型是一个特殊的类,一般用来表示一组常量,例如一年的四季。枚举类使用关键字 enum 来定义。各个常量通过逗号分隔,最后一个常量后面可以加逗号,也可以不加。

Java 枚举类型的基本用法如下:

enum Season {
    SPRING, SUMMER, AUTUMN, WINTER;
}

上面代码定义了一个枚举类型 Season,它有 4 个常量 SPRING、SUMMER、AUTUMN、WINTER。枚举类型的常量是静态的,可以通过枚举类型直接访问。

System.out.println(Season.SPRING);  // SPRING
System.out.println(Season.SUMMER);  // SUMMER

比较枚举类型

使用 enum 定义的枚举类型是一种引用类型,而对于引用类型的比较,要使用equals()方法,不能使用==。==比较的是两个引用类型的引用是否是同一个对象。因此,引用类型的比较要使用equals()方法。但是,对于枚举类型,我们可以直接使用==来比较两个枚举类型的值是否相等。

Season s1 = Season.SPRING;
Season s2 = Season.SPRING;
System.out.println(s1 == s2);  // true

方法

name() 方法

name() 方法返回枚举常量的名称,返回值是一个字符串。

System.out.println(Season.SPRING.name());  // SPRING

values() 方法

values() 方法返回一个包含所有枚举常量的数组。

Season[] values = Season.values();
for (Season value : values) {
    System.out.println(value);
}

valueOf() 方法

valueOf() 方法返回指定名称的枚举常量。

Season season = Season.valueOf("SPRING");
System.out.println(season);  // SPRING

ordinal() 方法

ordinal() 方法返回枚举常量的序号,从 0 开始。

System.out.println(Season.SPRING.ordinal());  // 0
System.out.println(Season.SUMMER.ordinal());  // 1
System.out.println(Season.AUTUMN.ordinal());  // 2
System.out.println(Season.WINTER.ordinal());  // 3

compareTo() 方法

compareTo() 方法用于比较两个枚举常量的顺序。

System.out.println(Season.SPRING.compareTo(Season.SUMMER));  // -1
System.out.println(Season.SUMMER.compareTo(Season.SPRING));  // 1
System.out.println(Season.SUMMER.compareTo(Season.SUMMER));  // 0

枚举内部成员

枚举跟普通类一样,可以拥有自己的变量,方法和构造方法。但是,构造方法只能是 private 访问权限。字段建议声明为 final 类型。

enum Season {
    SPRING("春天", "spring"),
    SUMMER("夏天", "summer"),
    AUTUMN("秋天", "autumn"),
    WINTER("冬天", "winter");

    private final String english;
    private final String chinese;

    private Season(String chinese, String english) {
        this.chinese = chinese;
        this.english = english;
    }

    public String getChinese() {
        return chinese;
    }

    public String getEnglish() {
        return english;
    }
}
上一页接口(Interface)下一页IO流

最后更新于3个月前

这有帮助吗?