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

网站建设多少费用孩子发烧反反复复不退烧怎么办

网站建设多少费用,孩子发烧反反复复不退烧怎么办,禁止wordpress保存修订版,房地产销售工作总结一、前言 在 Java 编程中,枚举类(enum)是一个非常实用且强大的特性,自 Java 5 引入以来,它为开发者提供了一种优雅的方式来表示一组固定的常量。枚举类主要用于信息标志和分类,能显著提升代码的可读性、可…

一、前言

在 Java 编程中,枚举类(enum)是一个非常实用且强大的特性,自 Java 5 引入以来,它为开发者提供了一种优雅的方式来表示一组固定的常量。枚举类主要用于信息标志和分类,能显著提升代码的可读性、可维护性和安全性。

二、枚举类基础概念

(一)枚举类的定义

枚举类使用 enum 关键字来定义,它是一种特殊的类,用于封装一组固定的常量。以下是一个简单的示例:

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

在这个例子中,Season 是一个枚举类,包含了四个枚举常量:SPRINGSUMMERAUTUMNWINTER。每个枚举常量都是 Season 类的一个实例,并且它们是全局唯一的。

(二)枚举类的使用

枚举类的使用非常简单,我们可以直接通过枚举类名和常量名来引用这些常量。例如:

public class EnumUsage {public static void main(String[] args) {Season currentSeason = Season.SPRING;System.out.println("当前季节是:" + currentSeason);}
}

三、枚举类与多例模式

可以在一定程度上把枚举类理解为多例模式。多例模式是指一个类可以有多个实例,但实例的数量是有限且固定的。枚举类的每个枚举常量都是该类的一个实例,并且这些实例的数量在定义枚举类时就已经确定,不能再动态创建新的实例。

(一)与传统多例模式的区别

  • 语法简洁性:传统多例模式需要手动编写代码来控制实例的创建和管理,代码相对复杂。而枚举类只需要使用 enum 关键字和简单的常量定义即可,语法更加简洁。
  • 线程安全性:枚举类的实例创建是由 Java 虚拟机保证线程安全的,不需要开发者额外处理线程安全问题。而传统多例模式需要开发者自己实现线程安全的实例创建逻辑。
  • 序列化和反序列化:枚举类在序列化和反序列化时能保证实例的唯一性,不会出现反序列化时创建新实例的问题。而传统多例模式在序列化和反序列化时需要额外处理以保证实例的唯一性。

四、枚举类的特性

(一)构造函数

枚举类可以有构造函数,但必须是 private 修饰的。这是因为枚举常量是在类加载时创建的,不允许在外部进行实例化。以下是一个示例:

enum TrafficLight {RED(30), YELLOW(5), GREEN(40);private int duration;private TrafficLight(int duration) {this.duration = duration;}public int getDuration() {return duration;}
}

在这个例子中,TrafficLight 枚举类有一个私有构造函数,用于初始化每个枚举常量的 duration 属性。

(二)方法

枚举类可以包含实例方法和静态方法。实例方法可以操作枚举常量的属性,静态方法可以用于对枚举类进行整体的操作。例如:

enum Day {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;public boolean isWeekend() {return this == SATURDAY || this == SUNDAY;}public static int getWeekdayCount() {return 5;}
}

在上述代码中,isWeekend() 是一个实例方法,用于判断当前枚举常量是否表示周末;getWeekdayCount() 是一个静态方法,用于返回工作日的数量。

(三)实现接口

枚举类可以实现接口,这使得枚举类能够具备接口所定义的行为。以下是一个示例:

interface Printable {void print();
}enum Month implements Printable {JANUARY, FEBRUARY, MARCH;@Overridepublic void print() {System.out.println("当前月份是:" + this);}
}

在这个例子中,Month 枚举类实现了 Printable 接口,并实现了 print() 方法,用于打印当前月份的信息。

(四)抽象方法

枚举类可以包含抽象方法,每个枚举常量都必须实现这些抽象方法。例如:

enum Operation {ADD {@Overridepublic double calculate(double a, double b) {return a + b;}},SUBTRACT {@Overridepublic double calculate(double a, double b) {return a - b;}};public abstract double calculate(double a, double b);
}

在这个例子中,Operation 枚举类定义了一个抽象方法 calculate(),每个枚举常量都需要实现这个方法来完成不同的运算操作。

五、枚举类的常用方法

(一)values() 方法

values() 方法返回一个包含枚举类所有枚举常量的数组。通过遍历这个数组,我们可以访问到枚举类中的每一个常量。示例如下:

enum Planet {MERCURY, VENUS, EARTH, MARS;
}public class EnumValuesExample {public static void main(String[] args) {Planet[] planets = Planet.values();for (Planet planet : planets) {System.out.println(planet);}}
}

(二)valueOf(String name) 方法

valueOf(String name) 方法根据枚举常量的名称返回对应的枚举常量。如果指定的名称不存在,则会抛出 IllegalArgumentException 异常。示例如下:

enum Color {RED, GREEN, BLUE;
}public class EnumValueOfExample {public static void main(String[] args) {Color color = Color.valueOf("RED");System.out.println(color);}
}

(三)ordinal() 方法

ordinal() 方法返回枚举常量在枚举类中的位置,位置从 0 开始计数。示例如下:

enum Size {SMALL, MEDIUM, LARGE;
}public class EnumOrdinalExample {public static void main(String[] args) {Size size = Size.MEDIUM;System.out.println("MEDIUM 的位置是:" + size.ordinal());}
}

六、枚举类在实际开发中的应用场景

(一)状态标志

在系统开发中,经常需要表示各种状态,如订单状态、任务状态等。使用枚举类可以清晰地定义这些状态,提高代码的可读性。例如:

enum OrderStatus {PENDING, PAID, SHIPPED, COMPLETED, CANCELLED;
}

(二)配置参数

枚举类可以用于表示一组固定的配置参数,如数据库类型、日志级别等。例如:

enum DatabaseType {MYSQL, ORACLE, SQL_SERVER;
}

(三)菜单选项

在图形用户界面或命令行界面中,枚举类可以用于表示菜单选项。例如:

enum MenuOption {NEW_FILE, OPEN_FILE, SAVE_FILE, EXIT;
}

七、枚举类的注意事项

(一)枚举常量的顺序

枚举常量的顺序是固定的,并且在定义后不能更改。ordinal() 方法返回的位置是根据枚举常量的定义顺序确定的,因此在使用 ordinal() 方法时需要注意。

(二)枚举类的继承

枚举类不能继承其他类,因为它默认继承自 java.lang.Enum 类。但枚举类可以实现接口。

(三)性能考虑

枚举类的实例在类加载时就会创建,因此如果枚举类包含大量的常量,可能会增加类加载的时间和内存开销。

八、总结

Java 枚举类是一种非常实用的特性,它为我们提供了一种优雅、安全且高效的方式来表示一组固定的常量。通过使用枚举类,我们可以提高代码的可读性、可维护性和安全性,避免一些常见的编程错误。同时,枚举类还具有丰富的特性,如构造函数、方法、实现接口等,能够满足各种复杂的业务需求。


文章转载自:

http://9jI1SALa.cbpmq.cn
http://P9PTUSDG.cbpmq.cn
http://TvXE4gLX.cbpmq.cn
http://6cgwUTXr.cbpmq.cn
http://MulXTLst.cbpmq.cn
http://IJyWnlAA.cbpmq.cn
http://R8g1RA3v.cbpmq.cn
http://gMoelP3k.cbpmq.cn
http://IzKxymlH.cbpmq.cn
http://vWWNtO4C.cbpmq.cn
http://eiTGvHX3.cbpmq.cn
http://hg2PcEp4.cbpmq.cn
http://3qWEP7rn.cbpmq.cn
http://75IfY3dZ.cbpmq.cn
http://bQq6q36k.cbpmq.cn
http://sp5kwkk9.cbpmq.cn
http://D5utpdVE.cbpmq.cn
http://em5tjy41.cbpmq.cn
http://Bu6hsK3O.cbpmq.cn
http://9vVJId6P.cbpmq.cn
http://u4H2gYrU.cbpmq.cn
http://T9u6vomh.cbpmq.cn
http://dudATdNk.cbpmq.cn
http://70pu0aFF.cbpmq.cn
http://LpPcN640.cbpmq.cn
http://nO1POu3D.cbpmq.cn
http://wlQY7kFB.cbpmq.cn
http://HdMmB8kb.cbpmq.cn
http://ar8n3DnD.cbpmq.cn
http://glk5KGKx.cbpmq.cn
http://www.dtcms.com/wzjs/755954.html

相关文章:

  • 加强机关门户网站建设wordpress 滑动验证
  • 纸牌网站建设学校网站功能描述
  • 网站推广技巧有哪些wordpress建商城教程
  • asp网站整站下载器wordpress怎么编程
  • 基于h5的企业网站建设响应式的网站建设一个多少钱
  • 我想网站建设莱芜市
  • 上海百度整站优化服务物流网站的建设论文
  • 新开传奇网站发布站手游黑马程序员教程
  • 网站建设和网页设计的区别ps素材网
  • 奥林匹克做校服的网站七牛云配置wordpress
  • 利用淘宝联盟做网站用群晖做网站服务器
  • 包装在线设计网站公司起名自动生成器
  • 专业 网站建设集团品牌网站建设
  • 个人备案做视频网站深圳福田网站建设公司
  • 网站设计步骤及图解国外贸易网站
  • 重庆网站建设重庆零臻科技价微信公众号(网站建设)合同
  • 大型网站制作报价做音乐网站是不是侵权
  • 聊城网站营销网站建设报价清单
  • 阐述商业网站开发岗位需求分析东莞百度快速排名优化
  • 滕州网站建铁路专业简历制作
  • 网站空间免费深圳宝安中学家长群
  • 网站开发用户需求说明书手机网站源码带后台
  • 网站建设项目明细wordpress首页不显示整篇文章
  • 公司网站建设华为2345网址导航周公解梦
  • 网站如何生成二维码网络联盟推广
  • 企业建站方案灵犀科技 网站建设
  • 健康濮阳门户网站建设网站 大气
  • 公司让我做网站负责人有没有网址呀
  • 做实验流程图的网站专业做域名的网站吗
  • 湖北营销网站建设联系方式seo外包公司