当前位置: 首页 > news >正文

学习嵩山版《Java 开发手册》:编程规约 - 常量定义(P5)

概述

  1. 《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,他旨在提升开发效率和代码质量

  2. 《Java 开发手册》是一本极具价值的 Java 开发规范指南,对于提升开发者的综合素质和代码质量具有重要意义

  3. 学习《Java 开发手册》是一个提升 Java 编程技能、了解行业最佳实践和规范的好方法


编程规约 - 常量定义 P5

1、基本介绍
  • 【推荐】如果变量值仅在一个固定范围内变化用 enum 类型来定义。

  • 说明:如果存在名称之外的延伸属性应使用 enum 类型,下面正例中的数字就是延伸信息,表示一年中的第几个季节。

public enum SeasonEnum {SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);private int seq;SeasonEnum(int seq) {this.seq = seq;}public int getSeq() {return seq;}
}
2、学习补充
  1. 变量值仅在一个固定范围内变化可以使用常量定义,也可以使用 enum 类型来定义
// 使用常量定义
public class DayConstants {public static final int MONDAY = 1;public static final int TUESDAY = 2;public static final int WEDNESDAY = 3;public static final int THURSDAY = 4;public static final int FRIDAY = 5;public static final int SATURDAY = 6;public static final int SUNDAY = 7;
}
// 使用 enum 类型定义
public enum DayOfWeek {MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}
  1. 如果存在名称之外的延伸属性使用 enum 类型更加合适
public enum TrafficLight {RED(30), // 红灯持续30秒YELLOW(5), // 黄灯持续5秒GREEN(45); // 绿灯持续45秒private final int durationInSeconds;// 构造器,用于初始化枚举常量的字段TrafficLight(int durationInSeconds) {this.durationInSeconds = durationInSeconds;}// 获取持续时间的方法public int getDurationInSeconds() {return durationInSeconds;}
}
for (TrafficLight light : TrafficLight.values()) {System.out.println(light + " 持续 " + light.getDurationInSeconds() + " 秒");
}
# 输出结果RED 持续 30 秒
YELLOW 持续 5 秒
GREEN 持续 45 秒
  • 注:Java 中 enum 类型的构造器是私有的,这是确保枚举类型的实例是唯一的、固定的,且不能将枚举的构造器显式地声明为 public
public enum Color {RED("#FF0000"), GREEN("#00FF00"), BLUE("#0000FF");private final String hexCode;Color(String hexCode) {this.hexCode = hexCode;}public String getHexCode() {return hexCode;}
}
 Color color = new Color("#FF0000");
# 输出结果java: 无法实例化枚举类型
http://www.lryc.cn/news/507800.html

相关文章:

  • 洛谷 P1595 信封问题 C语言递归
  • QT创建一个模板槽和信号刷新UI
  • 【计算机视觉基础CV-图像分类】01- 从历史源头到深度时代:一文读懂计算机视觉的进化脉络、核心任务与产业蓝图
  • C# cad启动自动加载启动插件、类库编译 多个dll合并为一个
  • Mybatis增删改查(配置文件版)
  • 【Spring Security系列】5 次密码错误触发账号锁定?Spring Security 高效实现方案详解
  • 笔记day5
  • Linux快速入门-兼期末快速复习使用
  • 浅谈文生图Stable Diffusion(SD)相关模型基础
  • Vivado使用VScode编译器
  • CEF127 编译指南 MacOS 篇 - 拉取 CEF 源码(五)
  • Jenkins 中 写 shell 命令执行失败,检测失败问题
  • Java程序打包成exe,无Java环境也能运行
  • 【java 正则表达式 笔记】
  • 基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
  • Vue2五、自定义指令,全局局部注册、指令的值 ,插槽--默认插槽,具名插槽 ( 作用域插槽)
  • Pika Labs技术浅析(五):商业智能技术
  • YOLO-World:Real-Time Open-Vocabulary Object Detection
  • Fastjson <= 1.2.47 反序列化漏洞复现
  • 鸿蒙项目云捐助第二十一讲云捐助项目物联网IoT模拟器的使用
  • 大数据技术原理与应用期末复习-知识点(二)
  • 高效准确的PDF解析工具,赋能企业非结构化数据治理
  • C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
  • 读书笔记~管理修炼-缄默效应
  • 视频会议系统会前预约模块必须包含哪些功能?
  • RabbitMQ中的Topic模式
  • tslib(触摸屏输入设备的轻量级库)的学习、编译及测试记录
  • Ubuntu vi(vim)编辑器配置一键补全main函数
  • 验证码机制
  • 【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE