avatar

一条在知识海洋的咸鱼

这个家伙很懒,啥也没有留下😋

  • Linux
  • OCJP
  • Java核心技术卷
  • J2EE相关标准
  • 深入理解Java虚拟机
  • NIO与SOcket编程技术指南
  • Java多线程编程核心技术
  • Redis开发与运维
  • Spring Cloud Alibaba 微服务原理与实践
  • DevOps
  • Docker
  • MySQL必知必会
  • AI自学路线
  • Spring Boot 编程思想(核心篇)
  • 首页
主页 第五章 枚举
文章

第五章 枚举

发表于 2021-05-7 更新于 6天前
作者 Administrator
7~9 分钟 阅读

在枚举类型中使用枚举类型(包括方法)和构造函数。

  • 枚举
  • 枚举是单例的

枚举

枚举是一种类型(类或接口) ,它表示一个固定的值列表(您可以将其视为常量)。

public enum Volume {
    HIGH, MEDIUM, LOW
}
  • 枚举中的这些值是“常量”(它们是隐式的 public、 static 和 final) ,因此遵循了使用所有大写的约定
  • 不能使new关键字来获得枚举的引用,而是直接获得引用
Volume level = Volume.LOW;
  • 也可以从一个字符串中得到一个枚举
Volume level = Volume.valueOf("LOW");
  • 获得特定类型的所有枚举
for(Volume v: Volume.values()) {
   System.out.print(v.name() + ", ");
}

其返回一个枚举数组,其声明顺序与方法值相同

  • 枚举类型不能extends类,因为所有枚举都隐式地从 java.lang.Enum 扩展。只能implement接口
public enum Volume implements AnInterface { ... }
  • 在使用枚举类时,如果枚举重写了枚举类方法,则使用的是重写后的方法,且如果枚举类有抽象方法,则枚举必须要实现该抽象方法,否则编译报错
public enum Volume {
    HIGH(100) {
        @Override
        public void printValue() {
            System.out.println("** Highest value**");
        }
        @Override
        public void printDescription() {
            System.out.println("High Volume");
        }
    }, MEDIUM(50) {
        @Override
        public void printDescription() {
            System.out.println("Medium Volume");
        }
    }, LOW(20) {
        @Override
        public void printDescription() {
            System.out.println("Low Volume");
        }
    };
    private int value;

    private Volume(int value) {
        this.value = value;
    }

    public void printValue() {
        System.out.println(value);
    }
    public abstract void printDescription();
}

枚举是单例的

  • 不能通过使用new创建枚举实例(因为构造函数是private)
  • 当第一次引用枚举时,将创建枚举的实例
  • enums 默认是线程安全的(这意味着在创建 enums 时不需要进行双重检查)
  • 在大多数情况下,枚举是在 Java 中实现单例设计模式的最佳方式
OCJP
许可协议: 
分享

相关文章

9月 6, 2021

关于这篇OCP-Java专题说明

5月 28, 2021

三十章 本地化

通过使用 Locale 对象读取和设置 Locale。创建并读取属性文件。为每个区域设置构建资源包,并在应用程序中加载资源包。本地化设置语言环境本地化设计一个能够处理不同语言和地区的应用程序。最常见的是消息、日期和数字。java.util.LocaleLocale类基本上代表一种语言和一个国家获得机

5月 27, 2021

第二十九章 JDBC API

了解JDBC API 核心的接口,包括 Driver、 Connection、 Statement 和 ResultSet 接口及其与提供者实现的关系。使用 DriverManager 类(包括 JDBC URL)标识连接到数据库所需的组件。从数据库提交查询和读取结果,包括创建语句、返回结果集、遍历

下一篇

第六章 范型

上一篇

第四章 接口

最近更新

  • 27 对话历史:让多轮 RAG 正确理解追问
  • 26 权限隔离:让无权内容无法进入 RAG 上下文
  • 25 引用来源:让 RAG 答案可以核对和追溯
  • 24 基础 RAG 问答
  • 23 向量检索

热门标签

java基础 微服务 maven Spring Tomcat DDD Linux Linux基础 SQL基础 数据结构算法

目录

©2026 一条在知识海洋的咸鱼. 保留部分权利。

使用 Halo 主题 Chirpy