JDK1.5新特性之枚举中的构造函数及抽象方法
2014-05-09 20:19
295 查看
事实上,enum声明定义的类型就是一个类,而这些类都是类库中Enum类的子类(java.lang.Enum)。它们继承了Enum中许多有用的方法。
既然枚举类就是一个类,当然在枚举中有构造器,方法和数据域。
但是枚举中的构造器和普通类中的构造器有很大不同:
1:构造器只是在构造枚举值得时候被调用。
2:构造器只能是private类型,决不允许public类型【枚举是不能new对象的】。
在WEB开发中尝使用的枚举类型,如:性别。
定义一个带有构造函数的枚举类型:
既然枚举类就是一个类,当然在枚举中有构造器,方法和数据域。
但是枚举中的构造器和普通类中的构造器有很大不同:
1:构造器只是在构造枚举值得时候被调用。
2:构造器只能是private类型,决不允许public类型【枚举是不能new对象的】。
在WEB开发中尝使用的枚举类型,如:性别。
public enum Gender { MAN{ /*在静态变量中实现枚举的抽象方法*/ public String getGender() { return null; } }, WOMEN{ /*在静态变量中师兄爱你枚举的抽象方法*/ public String getGender() { return null; } }; /*获取性别的抽象方法*/ public abstract String getGender(); }
定义一个带有构造函数的枚举类型:
public enum TrafficLight { RED(30) { /* 实现枚举中的抽象方法 */ public TrafficLight getNextLight() { return GREEN; } }, GREEN(20) { /* 实现枚举中的抽象方法 */ public TrafficLight getNextLight() { return YELLOW; } }, YELLOW(10) { /* 实现枚举中的抽象方法 */ public TrafficLight getNextLight() { return RED; } }; /* 定义枚举的数据域:交通灯的时间 */ private int times; /* 构造方法【必须为私有,且必须在静态成员变量之后】 */ private TrafficLight(int t) { this.times = t; } /* 无参构造方法【必须为私有,且必须在静态成员变量之后】 */ private TrafficLight() { } /* 定义获取下一个交通灯的 */ public abstract TrafficLight getNextLight(); }
相关文章推荐
- JDK5.0以上:一个枚举也可以有构造函数,字段和方法,带抽象方法的枚举
- java高新技术DAY1_反射基础_JDK1.5的新特性_枚举_myeclipse_笔记
- 黑马程序员——高新技术——枚举,JDK1.5部分新特性
- 带抽象方法的枚举
- 定义枚举的构造函数、方法和字段
- 黑马程序员基础加强——JDK1.5的新特性: 自动拆箱和机制 枚举
- 22-带抽象方法的枚举
- 黑马程序员——高新部分——高新入门、JDK1.5新特性及枚举
- 一个抽象类Shape 里边有两个抽象方法 计算面积 和 周长; Shape由三角形和圆形继承,利用多态的特性设计完成不同子类的功能
- 黑马程序员-jdk1.5新特性---枚举
- 黑马程序员--张孝祥Java高新技术-JDK1.5新特性(二)【基本数据类型的自动拆箱与装箱,枚举】以及享元设计模式
- 黑马程序员—JDK1.5新特性之枚举enum
- java基础加强--实现带有抽象方法的枚举
- 基础加强____JDK1.5高新特性之__【枚举】
- 带构造方法和抽象方法的枚举
- java--加强之 jdk1.5简单新特性,枚举,注解
- Java基础加强: Jdk1.5新特性 枚举
- 带抽象方法的枚举
- jdk1.5新特性5之枚举之枚举类型的应用
- 黑马程序员--Java基础加强(2)-- JDK1.5新特性之可变参数,增强for,自动拆装箱,枚举