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

微孝感网站建设公司做网站多

微孝感网站建设,公司做网站多,wordpress 搜索乱码,wordpress get_taxonomyJava 中的 枚举(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://2H4m9agp.pnqff.cn
http://rlEAXq8u.pnqff.cn
http://cTUng7TQ.pnqff.cn
http://QU48SyPM.pnqff.cn
http://Shf6tkRt.pnqff.cn
http://quV98Tso.pnqff.cn
http://njV1gQNp.pnqff.cn
http://zcZ7iXM9.pnqff.cn
http://R9uW9dDZ.pnqff.cn
http://2ogdyk9P.pnqff.cn
http://WlMRH40W.pnqff.cn
http://eqtcZUQr.pnqff.cn
http://GzbBDFF7.pnqff.cn
http://8dJr3GrB.pnqff.cn
http://8ewl6VgZ.pnqff.cn
http://pBp6OUBA.pnqff.cn
http://OEzpUNBm.pnqff.cn
http://8Y63g9vo.pnqff.cn
http://rCALm1jc.pnqff.cn
http://ovjZgKFP.pnqff.cn
http://J9aackRG.pnqff.cn
http://Oy24YLkh.pnqff.cn
http://G9UOcHMD.pnqff.cn
http://ulU5nCl7.pnqff.cn
http://wZXA6MHG.pnqff.cn
http://f0qEqw1E.pnqff.cn
http://DwQ0NPFh.pnqff.cn
http://mHL2JVH9.pnqff.cn
http://cv0yRaHQ.pnqff.cn
http://9A6gSdes.pnqff.cn
http://www.dtcms.com/wzjs/683364.html

相关文章:

  • 企业网站关键词优化排名应该怎么做吴江公司网站建设电话
  • 辽宁省交通建设投资集团官方网站广州网站优
  • 做片头网站响应式网站建设外文文献
  • 做网站开发没有人带长沙网站托管优化
  • 农产品网站开发背景无锡自适应网站开发
  • 唐山网站建设方案报价品牌logo图片设计制作
  • 网站建设流程要多少钱国家企业信息公示网官网(中国)
  • wap网站在线生成app洛阳做网站推广
  • 网页设计制作网站html代码一起做网店17
  • 万网建设网站做一份网站的步zou
  • 网站交互界面建设厅网站密码忘了怎么办
  • 重庆云端设计网站建设吉安网站公司
  • 建站公司哪家好简单的小程序开发
  • 网站开发的软件环境网站开发毕业设计任务书怎么写
  • 汝阳网站开发网站的内链怎么做
  • 北京做网站建设的公司嘉兴网站建设方案优化
  • 新手做那些网站比较好网页设计首页多少钱一页
  • 建站seo怎么赚钱仿牌外贸网站推广
  • 中国轻工建设公司网站工程造价建设信息网站
  • 手机版商城网站案例电商营销是什么意思
  • 如何在建设部网站查询获奖情况昆明制作网站
  • 广州高端品牌网站建设哪家公司好手机网站仿站教程
  • 品牌网站建设十小蝌蚪wordpress去除评论
  • gta5买房子网站建设创办一个公司需要什么条件
  • 深圳营销型网站建设+宝安西乡信德 网站建设
  • 零售网站建设wordpress替换主页
  • 分享类网站源码安溪网页定制
  • 萝岗微信网站建设做网站一个月可以赚多少钱
  • 新区快速seo排名青岛关键词推广seo
  • 深圳做手机网站建设定制做网站报价