00:00
好,我们再来讲这个新课,今天呢,我们讲这个内容呢,呃,是这个第十章叫枚举类和注解,这章这个内容呢不多,所以呢,今天我们这一章呢,就讲完了,讲完以后呢,我们还能讲这个集合的一部分内容,嗯,不用紧张,这个这个分成不同的章节而已啊这个一章的话,有的大有的小嘛,是吧?啊,这章的内容呢,相对来讲就是不多,也比较简单是吧?啊可能在我眼里什么都简单了,也不是那样啊啊就是这个内容呢,它确实不难,哎,对,相对简单是吧?啊相对昨天讲的内容要简单一些啊,相对于这个加减乘除呢,还是要难一些的是吧?啊来这一章呢叫枚举类与注解啊,这一章呢,两个内容,一个呢叫枚举类,一个呢叫注解,这两个呢,其实没什么关系啊,枚举类就是枚举类,注解就是注解,之所以放到一张呢,就是因为呃,他们内容呢都不多,所以呢,不妨呢就都放到一起了,那从另外一个角来讲。
01:00
这个枚举类呢,在咱们JDK5.0的时候啊,有一个新的关键字叫也算是一个新特性了啊,就更方便的让我们去这个呃定义枚举类,而我们这个注解呢,本身呢,它也是在5.0当中新增的,所以呢,我们也可以看作呢,这两个结构可以看成是咱们5.0的两个新特性。啊,5.0的两个新特性,哎,所以呢,我们这儿呢,就把它俩放在一起来讲啊,那具体的内容的话呢,那肯定就是这俩啊,一个呢就是枚菌类的使用,一个呢就是注解的使用,嗯,霉菌类这个呢不太难,然后这个注解的话呢,也不太难是吧?嗯,这个注解的话呢,呃,不是说难不难了,就是说这个注解很重要,当然在咱们这个Java SE Java基础部分呢,啊,你可能会觉得这个注解呢没啥用,或者说作用不明显,但实际上我们在后边用框架的时候,那注解呢非常重要啊,注解非常重要,到时候呢,我们就都会去使用注解了,OK,那咱们讲到注解时候再说,那首先呢,咱们来看一下,这叫枚举类的使用,枚菌类的使用呢,我们主要讲这样的几个方面,第一个说如何自定义枚举类。
02:14
那咱们刚才提到说这枚举类呢,在5.0的时候呢,是提到了一个关键字叫innu,这是5.0的新特性啊,那么我们不使用这个新特性,或者说呢,在5.0之前,我们呢,也是可以定义枚举类的,只不过呢,那个时候呢,咱们得自定义了啊,这叫自定义枚举类,那么5.0的时候呢,提到一个关键字叫innu,我们可以使用innu呢,更方便的去定义酶菌类。啊,那在后边呢,就提到一个,注意这是一个大写的一,这是一个累了,这呢可以看成是个关键字了。啊,这小写的啊,关键字你定义定义这个这个class,这不是,哎,这也是个关键字嘛,这也是个关键字,这呢是一个类啊,一会儿说这个类是什么,这个类的话呢,有些方法我们提下它主要的方法有哪些啊,最后呢,我们体会一下这个灭菌类呢,我让他去实现个接口,那这块呢,有哪些不同的点,主要呢,就说这样几个事情就完事了啊,所以呢,你这样一看其实也不难,那大家需要掌握的是什么呢?就是后边呢,咱们要用基本上都是使用innu来定义枚举类的,所以呢这个掌握,另外呢,这个innu里边这个常用方法的话呢,我们有呃三个重要的方法掌握一下,这个实验接口这块呢,就是呃这个你看一看,后边有相应的一些需求的话呢,你可以按照我们这里边的给的方式呢,去实现这个接口。
03:36
这个实现不同的这个抽样方法的一个重写啊,这个讲到这再说,主要重点呢是这两个好,那么接着呢,我们就开始来进行一个介绍,首先呢,大家先关注一下什么叫枚举类,哎,什么叫枚举类,这个类讲过了,枚举呢,这个词呢也听过。啊,枚举在数学当中有一种非常典型的方法呢,就叫做枚举法,对枚举法就是,呃,尤其是这个概率统计当中的一些问题是吧?概率当中的说问你这种情况呢,出现了概率是多少,比如说呢,举个例子啊说呢,这两个色子骰子呢,都是点数一到六的,那现在呢,就把这两个骰子一扔,这是会随机呢出现一个点数,现在问呢,说这个这两个点数之和小A等于七的概率是多少?
04:31
是吧,哎,那你这块呢,得把小于等于七的这种情况是不是都列一列,哎,你看有多少种,然后另外呢,再除以一下这个随便点,随便这个去治的话呢,那就是六乘六种呗,36种情况,你看你小于等于七的占其中多少种,这不就算出来这个所谓的概率吗?啊,那这里边呢,我们说小于等于七有多少种啊,这个你就可以一个一个的都列出来,这种就是一种叫枚举法,这就叫枚举法啊,那枚举法的前提呢,是你能列全哈。
05:02
你能列全,那如果说让你列一下说呢,呃,北京全年的气温说可能都是哪些温度呢?这个你能列全嘛,这不可能了,他也没有说指定到小数点后几位是吧,那你就列吧,它是是这个你要列它永远列不完了是吧,它就不是一个有限铬的了,这种不是有限铬的这个就没法去枚举了,所以枚举的这个前提呢,是你列着列着回头就列完了,所以它得是有限额啊,是有限额还得是一个确定多个的,你不能说是有限隔,但是具体有多少个又不确定了,比如说呢,假设啊,咱们说这个北京的气温呢,它最低最低应该超不过零下负50度啊。对吧,然后呢,最高也不能正50度吧,那都都快熟了,都是吧,诶50度啊到不了啊,最热应该也就40多吧,呃,气温气温啊,别考虑那个地面啊,那这呢,你要说是有限,那也算有限,它不会说超过这个数,哎,不会低于这个数,也不会超过这个数,但是你这里边呢,具体是多少又不确定了,也不行啊,就是大家呢,去体会一下,这里边这两个概念有限额啊,我得能够多列出来,但是你还得确定,你不能说可能是这个,可能是这个,呃这样也不行,就是当。
06:30
一个类中的对象。是有限个,是确定多个的时候,我们就把这个类称作呢,叫枚举类,具体的我们还是看例子啊,一通过例子就更明确了,比如说我们有个类呢,记到星期类,那星期类里边这个对象呢,就是星期一,星期二,星期3456啊,到这个星期天啊,这就不叫星期七了啊,这个星期天或者礼拜天是吧?哎,这是我们说的这样的几个天,这几天呢,就分别作为我们星期这个类的对象,那这个对象呢,就是有限个,确定多个,就七个性别俩。
07:09
或者你顶多再加一个不确定是吧,啊,这个仨是吧,哎,季节四个啊,有些城市呢,这个就没有这个概念啊,说这个只有两个季节,其实东北也是典型的只有两个季节啊,这个我那时候上学在这个长春啊,长春长春以为呢四季如春是吧?嗯,它是一种美好的愿望啊,啊你要说昆明是叫春城还是可以,当然长城也叫春城啊,嗯,其实是美好的一个愿景啊,这个像在东北的话呢,基本上就是这个每年的五月份开始,就是五月之前可能还得穿羽绒服啊,一过五一啊,一股热风就过来了,羽绒服立马脱掉换短袖啊,短袖呢,一直能大概穿到这个九月份,多就是九月份,当时刚去大学的时候呢,这个我们那个体育老师我记得还挺深刻啊,他说他说你们来的这个时候呢,是长春最好的天气,那时候呢确实挺好,九月份就是你在这个操场跑的时候,你慢跑,下午的时候你慢跑完以后呢,基本上也不怎么。
08:09
会出汗啊,天空还特别蓝,那时候的那个语文呢,真的就像棉花糖一样啊啊,才想起来小学那时候学的棉花糖,因为长期在石家庄待着,根本没有这个概念是吧?啊,这个太阳都快看不见了是吧?啊,这个那种云真的就像棉花糖一样啊,就是界限非常清晰啊,就是天气特别好,九月份,后来才知道九月份呢,那是算长春最好的天气了啊,九月一过,十一一来,十一一股冷风一来,立马换上羽绒服是吧?啊,就开始冷了,一直持续到第二年的五一,这又一股风是吧,再过来就开始穿短袖啊,一年呢,基本上就这两个季节啊,非常界限很明显啊呃,没有春天和秋天的概念啊,那对于这个南方同学来讲呢,这个就可能更呃清楚一些,有四季是吧?哎,这是我们这个有的感觉也不行啊。
09:01
也也感觉南方冷是吧,啊一般呢,南方同学发现到东北以后呢,都挺抗冻的啊对,南方呢,就是那个湿冷那个是吧,确实也挺难受的啊,就东北的话呢,就是虽然说外边冷,但屋里边呢是嗷嗷暖和是吧?嗯,行,这个季节啊四个季节,这四个季节呢,就作为我们季节类的四个对象,所以呢,它也是确定多个的啊,有限的,所以也是一个美菌类,那么植物方式这块呢,你可以回归到我们这个开发当中了,用户呢,可以选择这个支付方式,从这里边呢选一个,诶这个呢,你可以想象什么呢?就是咱们有一个用户的界面了,相当于是个客户端或者是浏览器端,诶我们呢,经常会出现有些选项呢,是不是叫多选一啊,诶多选一,多选一呢,那其中的每一个大家都可以看成是这个多选框对应的一个类,这个类呢有好几个对象,那用户呢,选择了其中一个,相当于就是你在呃,某一个逻辑当中使用。
10:02
这个类的声明的时候呢,这个负的值就是用户选的这个勾,这个勾呢,就是你从这里边儿挑的某一个对象啊,那么用户的这个多选框,那么回归到我们Java逻辑层面,你就可以用一个枚举类来呈现,那么这个每一个框就是枚举类的一个对象,用户呢,勾哪个,那就是相当于这个负的哪个值。哎,就很好理解,就像这个支付方式一样,那就职状态这个呢,大家就想到咱们讲的项目三,项目三呢,咱们涉及到这个组建开发团队,那么开发团队里边我需要从公司的员工中去抽取一个,那抽取的时候呢,呃,这个抽取过来了他就是个busy了,没过来他就是free,那有的员工还有这个休假啊,有的呢,还被这个开除了啊,就是还没有从这个系统中删除,是保留着,只是呢是离职状态,诶这个呢,就作为员工的一个状态,还有订单的状态。啊,订单未付款,已付款已配货等等等等等,那么这呢也是相当于好几种状态,那这几种状态呢,都认为是订单的一个状态,我们可以定义一个变量,专门呢去记录一下那用户当前这个订单啊,当前这个订单它是什么状态呢?我们呢,就从枚举类当中选择其中的一个对象给我们这个订单状态呢,去赋值啊付完这以后呢,回头人家又接着又呃,这个从付款之后呢,又变成这个配货了,配货呢,你再重新更改一下这个值,现在这个订单状态呢,就修改了。
11:31
啊,有点像什么呢?就是大家你看这个浏呃手机端或浏览器端啊,你买了个东西,这个东西目前的状态是什么啊,可能在这个页面当中有一个专门的其实是一个test view是吧?啊就是一个文本的一个视图呈现它的状态,这个状态呢,你可以理解为就是我们从这个后台呢,获取到的你这个变量,这个变量呢,一开始比如说叫未付款这块给你呈现出来叫未付款,那一会儿呢就改成叫已付款了,拿着这个变量呢,再去修改你这个值,哎,那这个变量其实就是咱们诶用的这个订单状态,这个类中的某一个对象啊,一会儿呢负责这个对象,一会负责另外一个对象。
12:08
哎,这样的方式啊,哎接着这个线程的状态,哎,咱们呢,前面讲多线程也提到过,线程呢有创建就绪,运行阻塞,死亡几种状态,那么这几个状态呢,也是有限的确定的,我们呢就用这几种状态,哎来组建成一个枚举类,哎这样来表示相当于我们线程这个状态呢,就是用一个枚举类来表示的。好,下面呢有一段说明,当我们需要定义一组常量时,那强烈建议呢使用枚举类。这个呢提到了叫一组,就是你这块呢,得大家得相互之间是有关系的啊,就是是描述的同一个事儿啊,都描述的是支付方式,都描述的是季节啊,都描述的是这个,呃,就这状态啊,定义这一组常量的时候呢,我们呢,就用枚菌类还有一个点常量。
13:01
常亮意味着不能修改。啊,就是专门就定义了这几种状态,其实啊,这个你就只能是拿来用,你就不要再对这个对象进行重新赋值了,比如说人家这个对象呢,还有属性是吧,这个属性呢,你就不要去改了啊,就只是拿来用啊,拿着这个对象去给你某个位置需要的,呃,这个比如说页面中需要了,哎,你这时候呢,就拿着这个已有的这个常量去这块赋一下值就完了,赋给这个位置,这是个变量啊,哎,这个常量呢,你不要去改啊,体会一下刚才说的这样的一个过程啊,把这个事呢,我们写到咱们的这个代码当中,新建一个module。对,零五新建一个包,这个大家现在用这个idea用的熟了不还行,现在有这种感觉,就是不想退围成eclipse的吗?有啊,那有就可以啊,哎,我这先暂时写一个叫season test啊,这呢,首先我们提一下,这是第一个关于叫枚举类的一个使用,哎,首先呢关于枚举类的一个理解。
14:20
来理解,首先呢,先确定一下它的一个其实也算是一个概念吧,哎,当一个类的对象是有限个,确定多个的时候,哎,我们称此类哎为枚举类啊,这是第一个事情,然后第二个事情呢,这呢提到这样一个事情,当我们呢,在开发当中需要去定一组常量的时候呢,强烈建议大家呢,使用枚举类来定义啊,这是这个概念啊,这个枚举类里边呢,有好几个对象。啊,这个对象呢,相当于是这个常量啊,那言外再问一句哈,言外之意,如果这个类当中枚举类哈,它只有一个对象,哎,当然也是个常量了,实际上这个对象呢,是不是就,哎实际上这个类呢,是不是就可以看成是一个单类模式的实现。
15:11
哎,确实是这样的啊,这个我们写着说,如果枚举类中啊,只。啊,只有一个对象则可以作为啊单立模式的啊,这个实现方式啊,其实咱们当时讲课的时候呢,就说过这个事了啊,你看咱们复习笔记里边讲这个基础,像这个单例,我看在这写了吧。我没写是吧,啊没在这写,咱们讲课的时候呢,写了我第二天复习的时候,哎说这个事了,就是呃,有同学当时你看回忆一下啊,咱们当时呢,咱们都是在这个方法里边呢,这不去提供了它的一个实例化,哎当然有同学不就问说诶老师我能不能把这个,诶这个对象本身就生明成public的。
16:01
然后我直接在这块给它扭完,在外边呢直接通过类去调这个,呃,Incense哎,我第二天复习的时候说过啊哎,我说是可以的,哎,然后呢,记着你把这个呢对象因为你在这直接new避免呢在外边呢再去给它赋值,所以还得生明成个final,其实呢,那就是一个霉菌类。哎,只不过那个枚举类的对象就只有一个啊,咱们现在呢,这块提的呢,可能会有好多个啊,仅此而已啊,所以呢,会出现这个事儿啊在这儿啊说如果那一类呢,只有一个对象,它就作为单立模式的一种实现方式了。成这呢,咱们首先呢,大家对这个呃,枚举类呢,先有一个感性的一个认识,知道呢,什么叫枚举类。啊,那么接下来呢,我们就会涉及到这样的几个问题啊,就是关于如何去定义问句类啊,这是我们说的第二个事情啊,如何定义哎,没聚类啊好先把这个呢停一下。
我来说两句