黑马程序员技术交流社区
标题:
枚举抽象类
[打印本页]
作者:
曹昌豪
时间:
2012-6-1 10:16
标题:
枚举抽象类
枚举的抽象方法,跟一般方法 在什么情况下用,在应用上有什么区别
作者:
于清云
时间:
2012-6-1 14:06
联系:枚举是一种在语言层的实现了某种模式(暂且叫enum模式吧)的class。
区别:枚举跟一般类的实例化方式不一样。
枚举有固定的值 通过枚举名.枚举元素来实例化。
一般类类是通过构造函数创建对象的方式来实例化。
两者都可以有抽象方法且都是实例化后的对象复写原先抽象方法。
作者:
涂金哲
时间:
2012-6-2 15:03
枚举Enum类是JAVA 5.0新特性。
声明格式:enum 标志符 {枚举体},与普通的类声明一样。 枚举类型的构造器不能用public、Protected修饰因为枚举类型类属于常量,不能产生对象实例,只可用private和friendly修饰。枚举提供了ordinal()方法返回枚举类型值的顺序,values()方法返回枚举值。 public class EnumTest { enum Season{spring,summer,autumn,winter}//定义枚举类
public static void main(String[] args){
for(Season season:Season.values())
// 通过values()方法取出枚举值,并用迭代方法将取出的枚举值依次赋值给season变量 System.out.println(season); } }
输出:spring,summer,autumn,winter
一般方法实现的话就要我们去自定义。 枚举类型如果有abstract方法的成员,那么必须保证枚举类有一个以上的枚举常量,并且每个枚举常量都提供了该成员的具体实现类体。
Public class EnumTest{ public enum Season{
spring{
public Season show(){ return spring; } },
summer{ public Season show(){ return summer; } },
autumn{ public Season show(){ return summer; } },
winter{ public Season show(){ return winter; } }; public abstract Season show(); } public static void main(String[] args){ Season season=Season.summer; System.out.println(season.show()); } 输出:summer
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2