A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹昌豪 中级黑马   /  2012-6-1 10:16  /  1694 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

枚举的抽象方法,跟一般方法 在什么情况下用,在应用上有什么区别

2 个回复

倒序浏览
联系:枚举是一种在语言层的实现了某种模式(暂且叫enum模式吧)的class。
区别:枚举跟一般类的实例化方式不一样。
枚举有固定的值 通过枚举名.枚举元素来实例化。
一般类类是通过构造函数创建对象的方式来实例化。
两者都可以有抽象方法且都是实例化后的对象复写原先抽象方法。
回复 使用道具 举报
枚举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
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马