黑马程序员——java高新技术:枚举
2014-09-21 17:20
197 查看
------- android培训、java培训、期待与您交流! ----------
枚举是java1.5版本的新特性。
1,枚举是什么?
就是让某个类型的变量的取值只能为若干个固定值中的一个。可以让编译器在编译时就可控制,避免出错。
2.枚举的应用
(1)定义枚举使用
的关键字是enum,定义一个最简单的枚举。
1、构造方法必须是private访问权限。
2、每一个元素(RED、YELLOW、BLACK)就是枚举类TraffictLamp的一个实例元素
3、枚举中可以有抽象方法,但是和定义普通类中抽象方法时,普通类必须是抽象类,而枚举不用,但是因为枚举类中有实例元素且有抽象方法,实例元素在定义时必须实现抽象方法。并且元素要看构造方法来具体定义。本例中定义了一个有参数的构造方法。
4,枚举是一种特殊的类,其中的每一个元素都是该类的一个实例对象,如果枚举只有一个成员时(也可以说是元素),就可以作为一种单例的实现方式。单例可以看做是一种枚举。
枚举的基本应用:常有方法有values()、valueOf()、name()、toString()、ordinal()等
values():获取的是该枚举类数组,为无参方法。
valueOf(String
name):获得传入的字符串对应的枚举类型元素。注意传入的字符串要和枚举元素大小写一模一样。
name():获得当前枚举类型元素的名字。
toString():同name()方法一样,获得当前枚举类型元素的名字
ordinal():获得当前枚举元素的在枚举中序号。
枚举总结:
1、枚举就相当于一个类,其中可以定义构造方法(必须私有),成员变量,普通方法和抽象方法。
2、枚举元素必须位于枚举体中最开始部分,枚举元素列表的后面没有其他成员时可以省略分号,若有其他成员则要用分号进行分割。
3、枚举只有一个成员时,可以作为一种单例的实现方法。
带有构造方法的枚举:
1、构造方法必须定义为私有。
2、如果有多个构造方法,枚举元素可以根据需要,调用相应的构造方法。
带有方法的枚举:
定义枚举,有抽象方法时,每个元素都是该枚举的一个实例对象,所以每个元素都必须实现抽象方法,采用类似匿名类的方式进行实现。
枚举是java1.5版本的新特性。
1,枚举是什么?
就是让某个类型的变量的取值只能为若干个固定值中的一个。可以让编译器在编译时就可控制,避免出错。
2.枚举的应用
(1)定义枚举使用
的关键字是enum,定义一个最简单的枚举。
public class EnumText { public static void main(String[] args) { // TODO Auto-generated method stub WeekDay weekDay1 = WeekDay.MON; } public enum WeekDay{ SUN,MON,WED,THT,FRI,SAT; } }
这就是一个最简单的枚举。(2)我们在看一个枚举
public enum TraffictLamp{ RED(30) { @Override public TraffictLamp nextLamp() { // TODO Auto-generated method stub return GREEN; } }, GREEN(35) { @Override public TraffictLamp nextLamp() { // TODO Auto-generated method stub return YELLOW; } }, YELLOW(5) { @Override public TraffictLamp nextLamp() { // TODO Auto-generated method stub return RED; } }; public abstract TraffictLamp nextLamp(); private int time; private TraffictLamp(int time){this.time = time;} }枚举的几个特性:
1、构造方法必须是private访问权限。
2、每一个元素(RED、YELLOW、BLACK)就是枚举类TraffictLamp的一个实例元素
3、枚举中可以有抽象方法,但是和定义普通类中抽象方法时,普通类必须是抽象类,而枚举不用,但是因为枚举类中有实例元素且有抽象方法,实例元素在定义时必须实现抽象方法。并且元素要看构造方法来具体定义。本例中定义了一个有参数的构造方法。
4,枚举是一种特殊的类,其中的每一个元素都是该类的一个实例对象,如果枚举只有一个成员时(也可以说是元素),就可以作为一种单例的实现方式。单例可以看做是一种枚举。
枚举的基本应用:常有方法有values()、valueOf()、name()、toString()、ordinal()等
values():获取的是该枚举类数组,为无参方法。
valueOf(String
name):获得传入的字符串对应的枚举类型元素。注意传入的字符串要和枚举元素大小写一模一样。
name():获得当前枚举类型元素的名字。
toString():同name()方法一样,获得当前枚举类型元素的名字
ordinal():获得当前枚举元素的在枚举中序号。
枚举总结:
1、枚举就相当于一个类,其中可以定义构造方法(必须私有),成员变量,普通方法和抽象方法。
2、枚举元素必须位于枚举体中最开始部分,枚举元素列表的后面没有其他成员时可以省略分号,若有其他成员则要用分号进行分割。
3、枚举只有一个成员时,可以作为一种单例的实现方法。
带有构造方法的枚举:
1、构造方法必须定义为私有。
2、如果有多个构造方法,枚举元素可以根据需要,调用相应的构造方法。
带有方法的枚举:
定义枚举,有抽象方法时,每个元素都是该枚举的一个实例对象,所以每个元素都必须实现抽象方法,采用类似匿名类的方式进行实现。
相关文章推荐
- 黑马程序员_java高新技术 枚举
- 黑马程序员_java高新技术(2)枚举
- 黑马程序员_java高新技术_枚举与反射
- 黑马程序员--张孝祥Java高新技术-JDK1.5新特性(二)【基本数据类型的自动拆箱与装箱,枚举】以及享元设计模式
- 黑马程序员--java高新技术----枚举
- 黑马程序员_java高新技术(1)枚举、反射、内省
- 黑马程序员---java高新技术之枚举
- 黑马程序员_高新技术:2) 枚举、内省JavaBean
- 黑马程序员_java高新技术总结【1】(枚举和部分java新特性)
- 黑马程序员——【Java高新技术】——JDK1.5新特性:静态导入、可变参数、增强型for循环、自动装箱拆箱、枚举
- 黑马程序员__JAVA高新技术--枚举及内省JavaBean、可变参数等知识点总结
- 黑马程序员_Java高新技术_枚举
- 黑马程序员 java高新技术<二>--java5的枚举、反射的深入讲解
- 黑马程序员_java高新技术--枚举
- 黑马程序员--java高新技术--java5的枚举
- 黑马程序员_ Java高新技术——深入Java枚举机制
- 黑马程序员--java高新技术 25--枚举,反射
- 黑马程序员_Java高新技术之枚举
- 黑马程序员_java高新技术之枚举
- 黑马程序员_Java高新技术(静态导入、可变参数、增强for循环、自动拆装箱、枚举、反射)