JDK1.5新特性:java枚举的用法

 

----------------------- android培训java培训java学习型技术博客、期待与您交流! ---------------------- 

枚举

a) 为什么要用枚举

枚举就是要让某个类型的变量的取值只能为若干个固定值的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,而使用普通变量的的方式在开发阶段无法实现这一目标。

b) 用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能

i. 私有的构造方法,防止任意实例化。

ii. 每个元素分别用一个公有的静态成员变量表示。

iii. 采用抽象方法定义nextDay就将大量的if else 语句转移成了一个个独立的类(在这里用到了内部类的概念)

iv. 如果想在一个类中编写各个枚举类和测试调用类,可以将枚举类定义成调用类的内部类。

c) 枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后面要有分号与其他成员分隔。

d) 枚举的构造方法,必须定义成私有的。默认调用无参构造方法。

e) 枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法、和抽象方法。

f) 每一个元素分别是枚举类的一个实例。

package HeightNew2010;

public class EnumTest {
 public static void main(String[] args) {
  System.out.println(WeekDayEnum.MON.name().toString());
  System.out.println(WeekDayEnum.MON.ordinal());                                //ordinal序数从0开始
  System.out.println(WeekDayEnum.MON);
  System.out.println(WeekDayEnum.values().length);
  System.out.println(WeekDayEnum.valueOf("MON"));
  
  System.out.println(lamp.RED.nextLamp());
 }
//定义一个一般的枚举——星期
 public enum WeekDayEnum{
  SUN,MON,TUE,WED,THI,FRI,SAT
 }
 //定义一个带抽象方法、构造函数、成员变量、普通方法的枚举——交通灯枚举

 public enum lamp{
  RED (50){
   @Override
   public lamp nextLamp() {
    return lamp.GREEN;
   }
  },GREEN(50) {
   @Override
   public lamp nextLamp() {
    return lamp.YELLOW;
   }
  },YELLOW (5){
   @Override
   public lamp nextLamp() {
    return lamp.RED;
   }
  };                                                              

  int time;                                                      //成员变量
  lamp(){}                                                       //无参构造函数
  lamp(int time){this.time=time;}             //带参构造函数
  
  public abstract lamp nextLamp();
 } 
}

 

 

 详情请查看:http://edu.csdn.net/heima

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值