枚举类

     如果一个类的对象是有限而且固定的,在Java里被称为枚举类。

     例如:季节类,它只有四个对象;行星类,只有九个对象。

     手动实现枚举类,可采用如下设计方式:

       1、通过private将构造器隐藏起来。

        2、把这个类里的所有可能实例都是用public static final 属性来保存

        3、如果有必要,可以提供一些静态方法,允许其他程序根据特定参数来获取与之匹配实例。。

      例如:

       public class Season{

             //把Season类定义成不可变的,将其属性也定义成final

             private final String name;

             private final String desc;

             public static final Season SPRING=new Season("春天","趁春踏青");

             public static final Season SUMMER=new Season("夏天","夏日炎炎");

             public static final Season FALL=new Season("秋天","秋高气爽");

             public static final Season WINTER=new Season("冬天","围炉赏雪");

             public static Season getSeason(int seasonNum){

                    switch(seasonNum){

                           case 1:

                                 return SPRING;

                            case 2:

                                 return SUMMER;

                             case 3:

                                 return FALL;

                             case 4:

                                 return WINTER;

                              default:

                                 return null;

                           }

                    }

                    private Season(String name,String desc){

                           this.name=name;

                           this.desc=desc;

                     }

                     public String getName(){

                            return this.name;

                      }

                      public String getDesc(){

                            return this.desc;

                      }

                }

     枚举类与普通类的区别:

      1、枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,而不是继承Object类。

      2、枚举类的构造器只能使用private修饰,如果省略了其构造器的访问控制符,则默认是private。

      3、枚举类的所有实例必须在枚举类中显式列出,否则这个枚举类将永远都不能产生实例。列出的这些实例,系统会自动添加public static final修饰。

      4、所有枚举类都提供了一个values(),该方法可以很方便地遍历所有的枚举值。

       JDK1.5后新增了enum关键字,用一定以枚举类。

       public enum SeasonEnum{

               SPRING,SUMMER,FALL,WINTER;

       }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值