黑马程序员_枚举
来源:互联网 发布:回溯算法与n皇后问题 编辑:程序博客网 时间:2024/06/06 02:10
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
在某些情况下,一个类的对象是有限而且固定的。例如季节类,只能有 4 个对象。,若枚举只有一个成员, 则可以作为一种单子模式的实现方式。
在JDK1.5之前,枚举类需要通过一下方法实现:
1. private 修饰构造器
2. 属性使用 private final 修饰
3. 在类的内部创建实例对象,并把该类的所有实例都使用 public static final 来修饰
使用 enum 定义枚举类:
JDK 1.5 新增的 enum 关键字用于定义枚举类,枚举类有如下特征:
1. 使用 enum 定义的枚举类默认继承了 java.lang.Enum 类
2. 枚举类的构造器只能使用 private 访问控制符
3. 枚举类的所有实例必须在枚举类中显式列出(, 分隔 ; 结尾). 列出的实例系统会自动添加 public static final 修饰
4. 所有的枚举类都提供了一个 values 方法, 该方法可以很方便地遍历所有的枚举值
注:DK 1.5 中可以在 switch 表达式中使用枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定
枚举类的属性:
1.枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰;
2.枚举类使用 private final 修饰的属性应该在构造器中为其赋值;
3.若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数;
实现接口的枚举类
和普通 Java 类一样枚举类可以实现一个或多个接口,若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式, 则可以让每个枚举值分别来实现该方法。
枚举类的常用方法:
valueOf() 传递枚举类行的Class对象和枚举类常量名称的静态方法,该方法会得到与参数匹配的枚举常量。
toString() 得到当前枚举常量的名称,可以通过重写这个方法来使得到的结果更易读。
equals() 在枚举类中可以直接使用==来比较两个枚举常量是否相等,枚举类提供的这个equals方法,也是直接使用==实现的,它的存在时为了在集合中使用,且不可改变的。
hashCode() 枚举类实现了hashCode()来和equals()保持一致。它也是不可变的。
getDeclaringClass() 得到枚举常量所属枚举类型的Class对象。可以用它来判断两个枚举常量是否属于同一个枚举类型。
name() 得到当前枚举类常量的名称。
ordinal() 得到当前枚举常量的次序。
compareTo() 枚举类型实现了Comparable接口,这样可以比较两个枚举常量的大小。
clone() 枚举类不能被clone,为了防止子类实现克隆方法,枚举类实现了一个仅抛出CloneNotSupportedException异常的不变clone。
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- 黑马程序员_枚举
- Socket编程复习(4) 函数集(linux)
- Hadoop在Windows环境下的部署
- UVA-10168 Summation of Four Primes
- cocos2d-x-2.2+win8+Python27+vs2010环境搭建
- vim编辑器的用法
- 黑马程序员_枚举
- 与硬件通信(第九章 )
- cocos2d-x 定时执行
- myd格式frm格式MYI格式导入mysql
- java学习之路----内部类之---匿名内部类
- 中断处理(第十章 )
- Android开发之性能优化
- 纸面发布会伤害手机行业
- 第十一章 内核的数据类型