00:00
那接着呢,我们来说这个第二种方式,在JDK5.0以后呢,我们可以使用in关键字呢来定义枚举类了,这种方式呢就非常的便捷,以后呢,我们也倾向于呢使用这种方式来定义,刚才这里边的定义呢,多少呢还是有点繁琐的,就像我们去定义一个接口一样,大家想咱们定义接口在JDK,呃,八之前我们说接口中呢,这个当然八以后也是啊,只有这个常量了,呃,这个方法呢,八之前都是只有抽样方法啊,像这个接口中的这个常量都是叫public static final的,所以咱们当时呢,就说其实你不写这几个,呃,关键字的修饰也行,它也默认呢,就有这几个修饰,那现在呢,我们说这个美举类,美举类里边你这个对象呢,也都是这样的,声明说明能不能去掉,但是你要使是一个普通的类,你去了显然不合适了,那就相当于你没有了,那这块呢,诶我们就用了一个关键字叫innu,你要是用这个关键字来定义枚菌类的话呢,像前面的这个声明呢,就不用写了。
01:00
就是相当于更便捷了啊呃,这个咱们说这个人的本质呢,就是人呢,有确实有个天性就是懒是吧,那基于懒呢,所以你会想很多的方式呢,怎么能够省点事啊,正因为这两个点,所以呢,人类这个进步不断的,就是省事是吧?啊就以后呢,就越来越便捷,想想可能是有的生物,也许人家的天性就没有懒,就是他他只要一挺他就很难受是吧,那人不是这样,人一停的话呢,感觉特别爽,哎,恰好相反啊,哎,那这呢,咱们再去新定义一个。Season test1哎,我们还是以它来说,这呢相当于叫使用叫innu关键字来定义枚菌类,那这呢还是一个简单的测试的,那么我们去新建一个,我们先呢把自定义枚菌类这个事呢,我拿过来CTRLC一下,我直接呢粘到咱们这个代码当中,诶让大家呢感受一下定义的这个便捷,首先呢,我们把这个C的1C的呢在同一个包下不能定义同名的类了,咱们先把这个名呢先改一下啊。
02:14
其实咱们也讲过这个快捷键shift是吧,或者直接写一个一,他这说already这个我选一个肯定用吧。诶没效果是吧,我就这样写吧,我怕什么呢?怕他这个把我们那个类呢也给跟着改了,哎,那我就这样写一下成,那么上边呢,这个我就测试,这个就先暂时不写了,咱们呢,相当于就把这个刚才那个C改成C定一了,其实别的没有什么变化,还是咱们自定义的一种方式,现在呢,在这个基础之上,我把它改成使用innu来定义,使用innu来定义呢,它会有一些小点需要注意,咱们就一个一个来改啊,首先这个关键字呢,Class改掉。
03:03
叫改掉以后立马报错啊,因为还有一些点需要注意啊,需要的点是什么呢?就是我们要求呢,就是定义好以后上来不要写这些东西,上来呢,就把你这几个哎对象呢就提供好,所以把它呢要提到上边。哎,先提到上面,提到上面以后呢,还报错,这个时候呢,就是提到一个点,就是大家呢,既然都是public static final的就不要写了,不是说呢,你可写可不写,像接口中的这个常量一样,说写也行,不写也行,但一定这不是一定我们说一定不要写啊,一定不要写,那我们就删掉,那光删掉它呢。还差点意思,哎,你是不是你四个对象都是C点一类型的呀,那干脆也就删掉,哎,言爱之呢,就是这四个对象里边凡是长得一样的呢,你就都删了啊,这一样删掉,然后再往后的话呢,等号负值是不是都一样,拗也一定拗的它你说括号也一样,括号别删了,这有有点太过了,你说那个双引号一样,那个删了就不是字符串了,都是吧,这就别删了啊,先这样删。
04:18
你看这块都一定是一样的,你拗的话呢,也不可能是拗别的啊,一定是你当前这个类,所以呢到这删掉。到这呢也都删掉,删掉完以后呢还报错,这又提到一个问题,多个对象之间用逗号。之间用逗号,最后一个呢,用分号好搞定。啊,这个呢就结束了,这是咱们第一个啊要求就是要求呢,咱们上来呢就去,哎这个相当于这就是创建的过程啊,或者要提供吧,哎,当前枚举类的对象。啊,这个呢,咱们呃,省略了很多这个操作啊,需要注意的就是多个对象之间啊,用这个逗号隔开。
05:11
啊,那么这个末尾的这个对象啊,分号结束行,这是咱们说的第一个事情,这个不是自定义了。使用。啊,第nu这个来关键字啊,来定义这个枚举类,好这是第一步,然后第二步话呢,就涉及到啊,你可能还会去声明你当前这个呃类的这个属性啊,这个属性的话呢,这个我们private这个final这个呢,注意就还给它留着啊,这都留着,然后这块呢,还这样去留着,呃实后边呢,就没有其他特别的这个说明了啊至于说这个诉求的话呢,呃,你该get还是get这个,嗯多说一点呢,就是这个two string哈,Two缀的话呢,一般时候呢,咱们就不去重写了,那不重启的时候呢,会是什么效果呢?是不是还是打印地址值呢,咱们看一下。
06:07
那下边呢,就相当于咱们来测试啊,来一个没方法,那测试这呢,既然是一个诶枚举类了,我们直接呢,通过它去点点咱们这个换一个啊,比如夏天,哎,在这out enter一下,生明成一个变量,就叫做summer,我们先去s out一下summer相当于调它的to string方法,调它的to方法,咱们这呢,又没有去重写to string。我们需要关注一下这个写的是什么执行你发现了,诶还不是出来地址值这个summer出来的summer啊,Summer是谁呢?是咱们这个常亮的名,或者你要这个对象的名也行。那相当于这个图斯方法呢,被重写过,诶被重写过,这是一写的SEASON1,这个SEASON1呢,我们可能在没讲新知识的,没讲这个知识的时候,你会把它当做,呃,会把谁当成它的负类呀,因为你后边没有显示的写负类是吧?会把object当成负类,如果你要是把object当做它的类的话呢,那它就应该打印地址值。
07:18
合理吧,Object里边那个to string不就是打地址值吗?但你现在打的不是地址值,不是地值呢,咱们自己又没有重写,那说明它的负类呢,应该不是object,那对他的这个父类是谁呢?咱们这不是有这样的一个方法嘛,嗯,当前呢叫SEASON1。CS1呢,咱们可以get它的,呃,先先得这么着啊,c1.class,然后get它的叫super class,看一下它的类。是不是就这个,哎,所以呢,我们这呢要提出个点,嗯,这个使用使用这个应用关键字来定义枚举类的时候呢,我们这个说明,嗯,这个定义的枚举类默认继承于哎这样的一个类,好那么具体如何去定义,大家主要关注的就是我们里边的开头的上来就需要提供好当前的哎美剧类的对象啊,这些对象呢,都是作为常量出现的啊嗯,那么这块我们就不去提供这个兔th string了,默认的话呢,这个兔TH润就是打印你当前这个对象的这个名字了,那如果大家有诉求说我不想,那你显示这个名字,那你可以去重写,没问题啊,可以去重写,那重写以后相当于你就不再使用我们in当中哎那个图斯人了,你再执行那就是你自己的,这不还是这样一个信息吗?
08:51
啊,就OK了啊好这呢,我们使用关键字来定义每几类。
我来说两句