Java干货 (Java干货分享)
本文目录导航:
Java干货 | Java申明枚举类型、枚举(enum)类、EnumMap 与 EnumSet
本文详述了Java中的枚举类型、枚举类、EnumMap与EnumSet的经常使用与个性,联合详细名目案例,确保读者能深化了解并灵敏运用这些概念。
首先,咱们引见枚举类型。
经过Java的主要字enum,申明枚举类型时,实例被视为固定的且有限的常量。
例如,申明了一个枚举类型Weekday,蕴含一周七天的枚举值。
值得留意的是,枚举值必定所有大写,表现其常量性质。
接着,论述枚举类。
它是一种不凡的类方式,用于成功枚举类型。
枚举类可以领有属性、方法及结构方法,增强枚举的适用性。
例如,申明了一个枚举类Weekday,蕴含一周七天的枚举值,每个枚举值具备中文和英文称号,经过结构方法初始化属性,提供getter方法。
进一步引见EnumMap。
这是一种不凡的Map,其键必定为枚举类型。
经过创立EnumMap,可以轻松地统计枚举类型的数量或关联数据。
例如,创立一个EnumMap,键为枚举类型Weekday,值为字符串类型,经过put方法减少元素,经常使用get方法失掉元素。
留意,EnumMap中的元素依照枚举值的顺序陈列。
之后,解释EnumSet。
它是不凡的Set,元素必定为枚举类型。
例如,创立一个EnumSet,蕴含一周上班日的枚举值,经常使用方法创立蕴含指定范畴的EnumSet。
雷同,EnumSet中的元素依照枚举值的顺序陈列。
在名目案例中,经常使用枚举类型示意酒店预订系统的房间类型和订单形态。
申明RoomType和OrderStatus枚举类型,区分示意房间类型和订单形态。
每个枚举值具备一称号,经过结构方法初始化称号,并提供getter方法。
在预订系统中,应用EnumMap统计房间类型和订单形态的数量,经常使用EnumSet示意可用的房间类型。
提供bookRoom和updateOrderStatus方法,区分用于预订房间和更新订单形态。
最后,罗列一些留意事项。
在枚举类型中,枚举值必定为常量,因此必定所有大写。
枚举类具备与个别类相似的个性和方法,可裁减枚举的经常使用场景。
EnumMap和EnumSet中的元素顺序遵照枚举值的顺序。
经过正当运用枚举类型、枚举类、EnumMap和EnumSet,可以优化代码的可读性和可保养性。
总结,本文经过详细解说和实例展示,旨在协助读者把握Java中枚举类型、枚举类、EnumMap与EnumSet的经常使用方法和留意事项。
在实践名目中,灵敏运用这些概念,能够有效提高代码品质。
枚举类 (Enum)——团体修炼
枚举类 (Enum)枚举类是一种在特定状况下,用于示意有限且固定数量的实例对象的不凡类。
在Java中,当一个类的实例对象数量有限且固定,如节令类,其实例对象只要春、夏、秋、冬时,称之为枚举类。
经过经常使用enum主要字定义枚举类,其位置与class、interface相反。
每个枚举类实例(枚举值)都是public static final类型,且必定在枚举类的第一行显式列出,确保枚举类的实例化。
在IDEA等开发工具中,假设枚举值不在第一行,将无法经过语法审核。
编译枚举类生成的class字节码文件中,自动结构函数是私有的,无法从外部调用。
枚举类承袭自类,并自动成功了和接口。
在Java源文件中,最多只能有一个public类型的枚举类,并且该类的类名与源文件名相反。
枚举类成员包括:成员变量、成员方法、结构器(结构器只能经常使用private访问润色符,无法从外部调用)。
结构器只在结构枚举值时被调用。
枚举类经常使用案例:定义一个示意一周的枚举类:WeekEnum成员变量、成员方法、结构器和get、set方法等。
枚举类中罕用方法:1. compareTo方法:用于比拟两个枚举对象的顺序,前往正整数、负整数或零。
2. name()方法:前往枚举实例的称号。
3. values()方法:前往一个蕴含一切枚举值的数组。
4. toString()方法:前往枚举值的称号,更罕用。
5. ordinal()方法:前往枚举值的索引值,从0开局。
6. valueOf()方法:前往指定称号的枚举常量。
6. equals()方法:比拟两个枚举类对象的援用。
枚举类成功接口:与个别类一样,枚举类可以成功一个或多个接口。
蕴含形象方法的枚举类:定义一个示意运算的枚举类,成功calculate()形象方法。
常量接口和枚举类的区别:枚举类处置了常量接口无法限度承袭、参数类型弱、性能优化受限以及代码更新疑问。
好处:1. 更便捷的定义方式,无需手动减少枚举值。
2. 编译时防止弱类型失误。
3. 自带内置方法,如values()、ordinal()、compareTo()等。
缺陷:1. 不能被承袭或经过extends承袭其余类。
2. 无法裁减枚举值。
倡导经常使用枚举的状况:当一切或者的团圆值已知时,经常使用枚举类。
例如HTTP照应代码、操作符等。
总结:枚举类是用于示意有限且固定数量实例对象的不凡类。
经过正当经常使用枚举,可以提高代码的可读性、强健性和可保养性。
详解Java枚举类型(Enum)中的方法
在深化解析Java枚举类型(Enum)的环节中,咱们讨论了其外部机制和方法。
首先,编译后,枚举类会转化为承袭自的类,每个枚举值在类初始化时即被实例化。
Java枚举类中存在一些由编译器生成的不凡方法,以及承袭自Enum形象类的方法,这些方法可用于枚举值的操作。
例如,创立一个便捷的枚举类,咱们可以看到每个枚举值都允许Enum形象类的方法。
此外,虽然枚举值由编译器创立,但其结构函数是暗藏的,无法间接调用,编译器会在创立实例时智能处置。
值得留意的是,values()和valueOf(String s)这两个静态方法是由编译器拔出的,它们在一切枚举类型中通用,且在转型后的枚举类中雷同适用。
这标明,无论枚举类型如何裁减,其基础配置坚持分歧。
总结来说,经过本文,咱们深化了解了Java枚举类型中的方法个性和行为。
经过之前的系列文章,咱们曾经对枚举类型的原理和经常使用有了片面的意识。
未来,咱们将继续深化讨论其在实践名目中的运行,敬请等候更多关系内容的分享。