美文网首页程序员
JAVA基础 | 谈一谈枚举

JAVA基础 | 谈一谈枚举

作者: 灬佐手边 | 来源:发表于2020-07-13 09:31 被阅读0次

枚举:
●类的对象只有有限个,确定的。举例如下:

星期: Monday(星期- ) … Sunday(星期天)
性别: Man(男)、 Woman(女)
季节: Spring(春 节..inter(冬天)
支付方式: Cash (现金)、WeChatPay (微信)、Alipay(支付宝)、 BankCard(银行卡)、CreditCard(信用卡)
就职状态: Busy、Free、Vocation、 Dimission
订单状态: Nonpayment (未付款)、Paid (已付款)、Delivered (已发货)、
Return (退货)、Checked (已确认) Fulilled (已配货)、
线程状态:创建、就绪、运行、阻塞、死亡
●当需要定义一组常量时,强烈建议使用枚举类
●枚举类的实现

JDK1.5之前需要自定义枚举类
JDK 1.5新增的enum关键字用于定义枚举类
●若枚举只有一一个对象,则可以作为-种单例模式的实现方式。
●枚举类的属性
枚举类对象的属性不应允许被改动,所以应该使用privatefinal修饰
枚举类的使用privatefinal修饰的属性应该在构造器中为其赋值
若枚举类显式的定义了带参数的构造器,则在列出枚举值时也必须对应的传入参数
自定义枚举类:
1.私有化类的构造器,保证不能在类的外部创建其对象
2.在类的内部创建枚举类的实例。声明为: public static final
3.对象如果有实例变量,应该声明为privatefinal,并在构造器中初始化
使用enum定义枚举类:
●使用说明

使用enum定义的枚举类默认继承了java.langEnum类,因此不能再继承其他类
枚举类的构造器只能使用private权限修饰符
枚举类的所有实例必须在枚举类中显式列出(,分隔结尾)。列出的实例系统会自动添加publicstaticfinal修饰
必须在枚举类的第一- 行声明枚举类对象
●JDK1.5中可以在switch表达式中使用Enum定义的枚举类的对象作为表达式,case子句可以直接使用枚举值的名字,无需添加枚举类作为限定。
Enum类的主要方法:

values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。
valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常:llegalArgumentException。
toString():返回当前枚举类对象常量的名称

相关文章

  • JAVA基础 | 谈一谈枚举

    枚举:●类的对象只有有限个,确定的。举例如下: 星期: Monday(星期- ) … Sunday(星期天)性别:...

  • 2018年Java面试总结(收藏明年跳槽用)

    JAVA问题总结 java 基础 java数据类型 谈一谈 “==” 跟 “equals” 的区别 jvm 的性能...

  • 【Java基础】- 枚举

    枚举应用场景 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便 枚举与静态类 枚举类更加直观...

  • Java基础-枚举

    一、枚举类型 枚举类的常用方法 name(); 返回enum实例声明时的名字。 ordinal(); 返回一个...

  • Java枚举基础

    1. 枚举 枚举是一个引用类型枚举是一个规定了取值范围的数据类型 1.1 示例 定义枚举使用 enum 关键字 枚...

  • java基础

    JAVA基础 基本类型 enum 枚举Size { SMALL , MEDIUM , LARGE , EXTRA ...

  • 枚举

    枚举 [TOC] java.lang.Enum 类 如果没有显式地声明基础类型的枚举,那么意味着它所对应的基础类型...

  • 学习路线

    Java Se基础 Java基础语法、数组、类与对象、继承与多态、异常、范型、集合、流与文件、反射、枚举、自动装箱...

  • java面试

    JAVA问题总结java 基础java数据类型谈一谈 “==” 跟 “equals” 的区别jvm 的性能调优(三...

  • java基础系列之枚举<三>

    在java基础系列之枚举<二>中进一步将枚举分类/分组实现枚举的枚举,则需要将其代码进一步修改,以达到如下要求:在...

网友评论

    本文标题:JAVA基础 | 谈一谈枚举

    本文链接:https://www.haomeiwen.com/subject/rcoocktx.html