java枚举类型

首先,在Java中,枚举类型其实是相当于类类型,在枚举类型的定义中,我们可以加入构造函数以及各种静态的非静态的成员函数,我们也可以用一个类来模拟枚举类型。

下面是代码:

enum Week
{
 SUN(0),MON(1),TUE(2),WED(3),THU(4),FRI(5),SAT(6);//只能是这种格式,因为下面的构造函数限制了,除非加上无参构造函数
 int value;
    Week(int value)        //相当于构造函数,我们赋予了每个成员一个value值
 {
  this.value=value;
 }
   
    public String toString()     //重写toString方法,使输出对象时更加直观
    {
     return value+"";
    }
}

class WeekDay{      //用一个类来模拟上述的枚举类型
 public static final WeekDay SUN=new WeekDay(0);     //相当于是静态的对象成员
 public static final WeekDay MON=new WeekDay(1);
 public static final WeekDay TUE=new WeekDay(2);
 public static final WeekDay WED=new WeekDay(3);
 public static final WeekDay THU=new WeekDay(4);
 public static final WeekDay FRI=new WeekDay(5);
 public static final WeekDay SAT=new WeekDay(6);
 
 int value;
 private WeekDay(int value)         //构造函数
 {
  this.value=value;
 }
 
 public String toString()      //重写toString方法
    {
     return value+"";
    }
  
 public static WeekDay[] values()
 {
  return new WeekDay[]{SUN,MON,TUE,WED,THU,FRI,SAT};
 }
}

public class EnumTest {
 public static void main(String[] args) {
  Week week=Week.FRI;
  System.out.println(week);
  for(Week w:Week.values())
  {
   System.out.println(w);
   System.out.println(Week.valueOf("SUN"));       //valueOf方法把字符串类型转化成对应的枚举类型
  }
  
  System.out.println("=================");
  WeekDay day=WeekDay.FRI;
  System.out.println(day);  
  for(WeekDay d:WeekDay.values())          //values方法可以将所有的枚举类型保存到一个该枚举类型的数组中,其实相当于一个对象数组
  {
   System.out.println(d);
  }
 }
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值