枚举类

来源:互联网 发布:淘宝有机证书编号 编辑:程序博客网 时间:2024/06/06 12:34
      在JDK1.5之后新增了一个关键字叫做enum,利用这个关键字可以进行枚举类的创建,例如:
          enum Person{
        MM,GG ,JJ;
}
          上面这个是最简单的枚举类的创建了,可以看到之中的三个对象之间都是用逗号隔开的,最后一个对象用封号,例子中的MM,GG,JJ都是枚举类Person的对象,所以是可以对他们进行实例化的。既然枚举类是一个类,那么它也有相应的构造方法,也可以有一些相应的方法,还可以对接口进行实现。
一、枚举类的构建
     既然它是一个类,那么就和普通类的类的构建没什么区别,它包含了普通类中可以包含的一切东西,如下面这个例子
enum Friends {
        LiRongHao("MM" ,"歌手" ){
               public void show()
        LiuDeHua("GG" ,"歌手、演员" ){
               public void show()
        private final String PersonName ;
        private final String Desc ;
       Friends(String PersonName,String Desc )
       {
               this.PersonName = PersonName ;
               this.Desc = Desc ;
       }
        public String getPersonName() {
               return PersonName ;
       }
        public String getDesc() {
               return Desc ;
       }
        @Override
               public String toString(){
               return "Friends[PersonName = " +PersonName +"Desc = " +Desc +"]" ;
       }
}
     可以看到这个例子的枚举类Friends中,有其相应的构造函数,还有一些属性和方法,还在这个枚举类中对其对象进行了实例化,当需要用到这些对象的时候(比如我需要用到LiuDeHua这个对象)可以直接用 Friends.LiuDeHua进行调用。
二、枚举类实现接口
     枚举类和普通类一样,同样是可以实现接口的,例如现在有一个接口:
interface Info{
        void show();
}
     那么实现这个接口就需要用到 implements 了,如:
enum Friends implements Info{//。。。。。}
     当实现接口时,要对接口中的抽象方法进行重写,我们可以像普通的类一样直接在枚举类中重写抽象方法,也可以在枚举类的不同的对象后面重写抽象方法,如:
        LiRongHao("MM" ,"歌手" ){
               public void show(){
                     System. out.println("男神,唱歌很好听" );
              }
       },
        LiuDeHua("GG" ,"歌手、演员" ){
               public void show(){
                     System. out.println("大众男神" );
              }
       };
这样做的好处是当我调用不同的对象时可以达到不同的执行效果,非常好用。
三、枚举类包含的方法
     枚举类中有两个它自己的方法,如下:
①values()  该方法能将枚举类中的所有对象以数组的形式返回
②valuesOf(String e) 该方法能将所存入的字符串对应的对象返回,如果没有,则会报错

原创粉丝点击