黑马程序员——高新技术--枚举
2015-10-17 20:49
337 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
枚举:
枚举是java1.5的新特性
枚举是一个特殊的类,其中的每个元素都是该类的一个实例对象,
有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,Java语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。
应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
定义方法如下:
那么我们要创建Weekend的实例对象的时候就只能创建枚举类里定义的元素,而不能创建其他的对象。
因此:
枚举只有一个成员时,可以作为一种单例的实现方式。
枚举类方法:
枚举类自带方法有
- values(返回一个装有该类所有对象的数组),
- valueOf(把输入的字符串转换成对应的枚举元素),
- name(),
- toString(),
- ordinal(返回指定元素的排行位置)等方法
枚举类也可以定义构造方法,而且必须是私有的
枚举类也可以自己定义方法
如果在枚举类里定义了抽象方法,则他的每个元素都分别由枚举类的子类来生成实例对象。
枚举类是内部类,跟成员变量及成员方法平级,可以加上四个访问修饰符
枚举:
枚举是java1.5的新特性
枚举是一个特殊的类,其中的每个元素都是该类的一个实例对象,
有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,Java语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。
应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
定义方法如下:
//enum声明放在类型名前 public enum Weekend{ //元素一定要定义在开头处。 SAT,SUN; //若下面不再有任何东西,分号可以不写 }
那么我们要创建Weekend的实例对象的时候就只能创建枚举类里定义的元素,而不能创建其他的对象。
因此:
枚举只有一个成员时,可以作为一种单例的实现方式。
枚举类方法:
枚举类自带方法有
- values(返回一个装有该类所有对象的数组),
- valueOf(把输入的字符串转换成对应的枚举元素),
- name(),
- toString(),
- ordinal(返回指定元素的排行位置)等方法
枚举类也可以定义构造方法,而且必须是私有的
枚举类也可以自己定义方法
如果在枚举类里定义了抽象方法,则他的每个元素都分别由枚举类的子类来生成实例对象。
枚举类是内部类,跟成员变量及成员方法平级,可以加上四个访问修饰符
public class EnumDemo { public static void main(String[] args) { //创建枚举类实例对象 Weekend sat = Weekend.SAT; //调用方法 sat.nextWeekend(); sat.print(); } public enum Weekend{ //通过传递不同参数调用不同的构造函数 SAT(24){ //复写枚举类中的toString方法 public String toString(){ return "星期六"; } //实现抽象方法 public Weekend nextWeekend(){ return SUN; } }, SUN(){ public String toString(){ return "星期天"; } public Weekend nextWeekend(){ return SAT; } }; private int time; //构造函数要定义为私有,为了防止新创建实例对象 private Weekend(int time){ this.time = time; } private Weekend(){ this.time = 0; } public abstract Weekend nextWeekend(); public void print(){ System.out.println("今天是:"+this.toString()+"休息时间为:"+this.time); } } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统