黑马程序员_java中的枚举

 ------- android培训java培训、期待与您交流! ----------

一、enum枚举:它是Type 是 Java 编程语言中所有类型的一种,他的实例对象表示的是一些具有一定取值范围的一类数据,通过枚举的实现,在编译时期杜绝那些在范围外的数据的输入,提高代码的安全性。例如:表示时间的年、月、日、星期等。下面通过定义一个WeekDay星期类,来说明枚举的一些相关的知识:

   

1)枚举列表中的成员都是常量值,用大写表示。

1)  枚举当中参数列表是枚举类中的实例对象,如果枚举类中只有参数列表时,最后的双引号可以省略;而如果,枚举类中除了参数列表外,还有其他成员,则其后的双引号必须写上,且,其它成员必须位于此参数列表之后。

2)  枚举列表中的成员都是有序性的,它的成员方法int  ordinal()方法返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。

3)  枚举中的构造函数必须是私有的。

二、带有多个构造的枚举:构造函数是用来实例化对象的,带有多个构造函数的枚举怎么实现其构造函数的调用呢?

 

public enumWeekDayTest {

    MON(0),TUE(1),WEN,THR,FRI,SAU,SUN;

    private WeekDayTest() {

 

        System.out.println("无参构造方法");

               

            }

    private  WeekDayTest(int day) {

                // TODO自动生成的方法存根

            System.out.println("有参构造方法");

 

输出结果:

有参构造方法

有参构造方法

无参构造方法

无参构造方法

无参构造方法

结果分析:由于类加载时会加载类的静态属性值(MON(0),TUE(1),WEN,THR,FRI,SAU,SUN),默认情况下(即静态值后面的小括号中没有参数),会调用无参构造方法,若静态值后面的小括号中有参数,如上面代码中的MON(0),TUE(1),会调用有参构造方法。

三、带有抽象方法 的枚举:public enum TrafficLamp {

        RED(30){

            public TrafficLamp nextLamp()

            {

                return GREEN;

            }

           

        },

       

        GREEN(20){

            public TrafficLamp nextLamp()

            {

                return YELLOW;

            }

        },

        YELLOW(40){

            public TrafficLamp nextLamp()

            {

                return RED;

            }

        };

        public abstract TrafficLampnextLamp();

        private int time;

        private TrafficLamp (int time)

        {

            this.time=time;

        }

 

}

注意:此枚举类中虽有抽象方法,但是不可以将enum用abstract修饰,这是与其他类不同的地方,其抽象方法实现方式与普通类一样的,不能用new的方式直接创建对象,但可以用花括号 的方式完成对父类的实现。

 



 ------- android培训java培训、期待与您交流! ----------


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值