黑马程序员-jdk1.5新特性---枚举

为什么要有枚举

   问题:要定义星期几或性别的变最,应该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday=0;

   枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。

   枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。

 

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

  私有的构造方法

 每个元素分别用一个公胡静态成员变量表示

 可以有若干公胡方法或抽象方法。例如,要提供nextDay方法必须是抽象的。

枚举的基本应用

 

用一般类模拟枚举

 

package laladin.learn;

class EnumTest {

public Static void main(String[]args){

WeekDay weekDay = WeekDay.MON;

}

]

public class WeekDay{

private WeekDay(){}

public final Static WeekDay SUN=new WeekDay();

public final Static WeekDay MON=new WeekDay();

public WeekDay nextDay() {

      if (this==SUN) {

return MON;

         }else{

return SUN;

}

}

 public String toString() {

               return this==SUN?"SUN":"MON";

}

}


基本的枚举类:

package laladin.learn;

public class EnumTest {

         public static void main(Stirng[] args){

             WeekDay weekDay=WeekDay.FRI;

             System.out.println(weekDay); //返回FRI

             System.out.println(weekDay.name());//打印出名字,返回FRI

             System.out.println(weekDay.ordinal());}//返回所在的位置:返回5

             System.out.println(WeekDay.valueOf("SUN"));//将传来的字符串返回对应的枚举元素。

             System.out.println(WeekDay.values().length);//返回枚举的所有元素到数组

public enum WeekDay{  //用enum定义  枚举相当于一个类,他的元素就是一个实例对像

    SUN,MON,TUE,WED,THI,FRI,SAT;

}

}


 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值