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

网站开发公司所需投入资源百度推广客户端官方下载

网站开发公司所需投入资源,百度推广客户端官方下载,...温岭做网站,郑州短视频拍摄制作Java 中的 枚举(Enum) 是一种特殊的类,用于表示一组固定且有限的常量(如状态、类型、选项等)。它提供类型安全的常量定义,比传统的常量(如 public static final)更强大和灵活。以下是…

Java 中的 枚举(Enum) 是一种特殊的类,用于表示一组固定且有限的常量(如状态、类型、选项等)。它提供类型安全的常量定义,比传统的常量(如 public static final)更强大和灵活。以下是 Java 枚举的详细讲解:


一、枚举的基本语法

public enum Season {SPRING, SUMMER, AUTUMN, WINTER; // 常量必须放在最前面
}
底层实现:
  • 枚举本质是继承自 java.lang.Enum 的类,每个枚举常量都是该类的实例(单例)。
  • 编译器会自动生成 values()valueOf(String) 方法。

二、枚举的核心特性

1. 类型安全
  • 枚举常量是类型明确的,不能随意赋值其他类型。
Season currentSeason = Season.SPRING; // 只能赋值 Season 的常量
2. 固定常量集合
  • 枚举的常量在定义时确定,无法运行时动态修改。
3. 可附加属性和方法
  • 枚举可以定义字段、构造函数和方法,实现更复杂的逻辑:
public enum Planet {MERCURY(3.303e+23, 2.4397e6),VENUS(4.869e+24, 6.0518e6);private final double mass;   // 属性private final double radius; Planet(double mass, double radius) { // 构造函数(默认 private)this.mass = mass;this.radius = radius;}public double surfaceGravity() { // 方法return mass / (radius * radius);}
}
4. 可实现接口
  • 枚举可以实现接口,但无法继承其他类(因为已经隐式继承 Enum)。
public interface Printable {void print();
}public enum Color implements Printable {RED {public void print() { System.out.println("红色"); }},GREEN {public void print() { System.out.println("绿色"); }};
}

三、枚举的常用方法

1. 内置方法
  • values():返回枚举所有常量的数组。
  • valueOf(String name):根据名称返回对应的枚举常量。
  • name():返回枚举常量的名称(字符串形式)。
  • ordinal():返回枚举常量的声明顺序(从 0 开始)。
2. 示例代码
Season[] seasons = Season.values(); // 获取所有枚举值
Season s = Season.valueOf("SPRING"); // 根据名称获取枚举
System.out.println(s.name());        // 输出 "SPRING"
System.out.println(s.ordinal());     // 输出 0

四、枚举的高级用法

1. 枚举与单例模式
  • 枚举是实现线程安全单例的最佳方式(防止反射攻击和序列化问题):
public enum Singleton {INSTANCE;public void doSomething() {// 业务逻辑}
}
2. 枚举作为状态机
  • 通过枚举的属性和方法,可以优雅地实现状态流转:
public enum OrderStatus {NEW {public OrderStatus next() { return PAID; }},PAID {public OrderStatus next() { return SHIPPED; }},SHIPPED {public OrderStatus next() { return COMPLETED; }},COMPLETED {public OrderStatus next() { return this; }};public abstract OrderStatus next();
}
3. 策略模式
  • 通过枚举实现不同的策略行为:
public enum Operation {ADD { public int apply(int a, int b) { return a + b; } },SUB { public int apply(int a, int b) { return a - b; } };public abstract int apply(int a, int b);
}

五、枚举的注意事项

  1. 构造函数私有化
    枚举的构造函数默认是 private,不能手动修改为 publicprotected

  2. 常量定义位置
    枚举常量必须定义在类的第一行,之后才能定义字段和方法。

  3. 性能与内存
    枚举比常量占用更多内存(每个常量是一个对象实例),但在大多数场景下影响可忽略。

  4. 序列化
    枚举的序列化仅存储名称,反序列化时通过 valueOf 恢复,天然安全。


六、枚举 vs 常量类

特性枚举常量类(public static final)
类型安全✔️ 编译时检查类型❌ 只是 int/String 常量
可附加方法✔️ 支持方法和属性❌ 只能定义简单值
扩展性❌ 常量固定✔️ 可随意添加新常量(但破坏封装)
线程安全✔️ 实例天然单例且不可变❌ 需手动控制

七、总结

使用枚举的场景

  • 需要一组固定的、类型安全的常量(如状态、错误码、配置选项)。
  • 需要为常量附加行为或数据(如计算、状态流转)。
  • 实现单例或策略模式。

避免枚举的场景

  • 需要动态生成常量(如从数据库加载)。
  • 对内存极度敏感(如嵌入式开发)。

枚举是 Java 中一种强大的工具,合理使用可以大幅提升代码的可读性和健壮性。
在这里插入图片描述


文章转载自:

http://PeRqmNn1.rzbcz.cn
http://IiK6gXsd.rzbcz.cn
http://9nIBBjse.rzbcz.cn
http://avn0kFT2.rzbcz.cn
http://13rRXQsj.rzbcz.cn
http://ZrgdAI33.rzbcz.cn
http://kjZOcOqJ.rzbcz.cn
http://cLRvKJ4t.rzbcz.cn
http://nXuSBFrL.rzbcz.cn
http://P4vBuRQa.rzbcz.cn
http://rOS2OsSW.rzbcz.cn
http://Kn2GtUCV.rzbcz.cn
http://N0P3puFg.rzbcz.cn
http://DMenqC0W.rzbcz.cn
http://MSl3rsWa.rzbcz.cn
http://m4RpjQvK.rzbcz.cn
http://3HcN0yAV.rzbcz.cn
http://HFTLp015.rzbcz.cn
http://5zbo4lzy.rzbcz.cn
http://U2l31O8D.rzbcz.cn
http://mtZsE43f.rzbcz.cn
http://yXdIBifq.rzbcz.cn
http://nl2bA3aZ.rzbcz.cn
http://wilhsKLE.rzbcz.cn
http://mjFZdTG5.rzbcz.cn
http://WdlXxU9c.rzbcz.cn
http://fvtXJmbc.rzbcz.cn
http://9RTC4NDR.rzbcz.cn
http://KqZJZWau.rzbcz.cn
http://pKTtb0iS.rzbcz.cn
http://www.dtcms.com/wzjs/663965.html

相关文章:

  • 广州做网站制作公司网络营销的整体概念
  • 适合新手做网站的asp网站经常 响应
  • 做网站如何保证询盘数量惠州网站建设培训
  • 网站推广适合哪种公司做京东如何进行网站建设
  • app网站平台建设方案大连网站建设招标
  • 网站公司做的网站点击率怎么查网站空间租赁 排名
  • 做导购网站如何获利北京大兴最专业的网站建设公司
  • 用ps如何做网站首页搜索引擎seo外包
  • c++语言网站建设北京建设质量协会网站
  • 徐州做网站软件墨客网站建设xcyxqc
  • 提供赣州网站建设wordpress分类目录优化
  • net网站开发教程马鞍山 做网站
  • 网站可以换主机吗wap注册
  • 网站优化公司seo案例参考消息网
  • 个人网站模板flash什么手机可做网站
  • 暖色系网站模板网站改版要重新备案
  • 做简图的网站网站推广专家十年乐云seo
  • 企业名录搜索软件 2022网站seo外链接
  • 建设部网站监理工程师查询logosc网站怎么做的
  • 代理网站备案电子商务网站建设心得
  • 初中学校网站如何做广西建网站公司
  • 新手学做网站pdf手南宁企业网
  • 国外手机网站欣赏建设网站的企业是什么
  • 买域名送网站东莞公司注册哪家好
  • 宝安区做外贸网站的公司wordpress改了常规无法访问
  • 高端网站建设教学山东工艺美术学院网站建设公司
  • 建设网站 软件做ppt的网站兼职
  • 可信赖的扬中网站建设室内设计有限公司
  • 如何查询网站备案进度学做网站网
  • 厦门同安网站制作企业如何做app网站