黑马程序员----枚举反射

        ----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

 

 

 

关键字:枚举、反射、Class类、反射、Constructor类、Field类、Method类、数组的反射、框架、类加载器、配置文件

 

枚举enum

定义一个类型,让该类的变量的取值只能是若干个固定值中的一个,否则编译报错,这个过程称为枚举。枚举可以让编译器在编译时就控制源程序中的非法值,普通变量无法实现。本质是限制了对象的创建。

普通类实现枚举:本类中,私有化构造函数,并限制了对象和引用变量的创建,将引用变量变成常量(对象类型)。外部类在使用本类时,引用变量只能赋值这些常量,不能指定规定以外的值,例如一星期的七天,3色的交通灯。

普通类实现枚举的思路:

1.       私有构造方法。

2.       每个元素分别用一个共有的静态变量表示。

3.       可以有共有方法和抽象方法。例如,采用抽象方法、匿名内部类和多态定义nextDay()就将大量的if、else转成成一个个独立的子类。

通过点击左边框里的错误图标,可以直接创建新的类、接口等,非常便捷。

    枚举相当于一个类,枚举里面的元素相当于常量,指向实例对象。可以调用一些方法对枚举的对象进行操作,就像普通类通过继承Object类获得了一些基本方法。例如,name()、toString()、ordinal()(自己的顺序)、getclass()。枚举也有一些静态方法,valueOf(),将字符串变成该枚举的对象;values(),将枚举里的元素装入一个数组中。

    枚举的对象获得:类.元素,例如,TrafficLamp.RED。

    枚举的构造方法特点

1.       构造方法必须位于元素列表之后。成员变量和成员方法都要放在元素后面,否则报错。

2.       私有化构造方法。

3.       当枚举被调用,内部的元素(静态变量)会都被加载进内存,然后逐个调用空参数的构造函数创建相应的对象。

4.       调用带参数的构造函数创建对象:在元素后面加上括号,括号内传入构造函数的参数。例如,SUN(1)。由此可见,如果括号内没有参数,调用空参数构造函数。

访问修饰符:外部类:public和默认。内部类:public、private、protected和默认,和成员函数平级,访问修饰符也一样。

    匿名内部类的另类用法:{}及其里面的内容放在引用的后面,而不是对象的后面,例子如下。再者就是,子类对象可以调用父类的带参数的构造方法,例如,new data(30){};

    当枚举只有一个成员是,可以当做一个单例的实现方式,比单例设计模式方便,只要列出一个元素即可,其他方法一样。

    public enum TrafficLamp {//带有抽象的方法,但不用写出。

       RED(30){//另类的匿名内部类使用方法。

           public TrafficLamp nextLamp(){

              return GREEN;

           }  

       },

       GREEN(5){

           public TrafficLamp nextLamp(){

              return YELLOW;

           }  

       },

       YELLOW(40){

           public TrafficLamp nextLamp(){

              return

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值