00:00
行,那么接下来呢,我们就来看一下如何去定义枚举类了啊,这个如何定义枚举类的话呢,我们提到了有两种方式。方式一呢,就是我们在JDK5.0之前,咱们去自定义啊,JDK5.0之前。哎,这个自定义。哎,枚举类啊,所以大家呢,其实能看到我们好多这个新特性呢,都是在这个5.0的时候新增的,呃,前面这个自动装箱,自动拆箱,这个这个string,呃,Builder,还有呢,我们下边讲的这个注解,哎等等,其实都是5.0的加的,所以5.0呢,是我们Java的这个JDK版本在迭代更新过程当中的一个里程碑啊,后边这个里程碑呢,就是8.0。对啊,后边的九十十一迭代速度也快了,所以这个新德星呢,就不会说那么多了啊嗯,放置二,嗯就是在JDK5.0时啊,我们呢可以使用哎in我们关键字,哎定义这聚类好,这呢就是两种方式,这两种方式呢,咱们都关注一下啊呃,以前呢得自己写,以后呢大家都用这种就行,那先看一下我们自定义怎么去做这呢,我举个例子,就拿这个看季节。
01:22
哎,我这声明一个就叫做season啊,显然呢,它是一个枚举类了啊,因为呢,它就这么四个对象啊,那么season我现在呢,要定义一个枚举类。哎,下边呢,我们就来看一下怎么去做,其实呢,咱们之前也做过,就咱们项目三中写那个,哎status对,其实咱们这定义的就是个枚举类了啊,咱们现在只不过呢,呃,系统的来说一下怎么去定义啊,那自定义枚举类首先的话呢,提到了说你这个类的对象啊,它是确定有限个的。IG呢,就是你有几个我一开始就知道,不可能说是不确定的,这呢,首先我们先提一个构造器的问题。
02:05
啊,这个构造器我们仍然需要将它的权限的私有化,是吧,私有化类的构造器。啊,如果你这个类的构造器不是私有化,言外G呢,可以在外边呢任意的位置去调,只要你能外边去调,那我就不知道你到底有几个对象,那显然它就不确定了,确定呢就说明你不能再去多造了啊,这叫确定了,所以呢这呢我们需要private啊,你这个呢叫season,那此时呢,咱们这个构造其中没有任何参数哈,那咱们也可以去声明一些参数,这个呢就作为咱们C类的对象的实例变量,哎,暂且教程变量了啊这呢就是我们去声明。说明什么呢?声明这个,呃,Season对象的属性,我这样来说吧,Season对象的这个属性,CN对象如果有属性的话,这个呢,我们习惯上属性呢,都还是私有的。
03:08
啊,比如说它有两个属性,一个呢叫string类型的啊叫season啊叫name机械名private string类型的season的一个描述吧。这两个属性,这两个属性写完了,写完以后我们回头呢,你造这个类的几个对象,就是春夏秋冬呗,那每一个对象呢,都会有他的名字和他的一个描述。啊,那么咱们还得再回到这说啊,咱们这几个对象呢,一会儿都定义成常量了,就你这几个对象造完以后呢,就不能再重新赋值了啊呃,跟那个单列有点也有点像,一定要赋值以后呢,不能再赋了,这个对象呢,它都是常量呢,那么对象呢,它还有属性。属性我们就也不让它变了,总之呢,就是全是常量,那属性呢,不让它变,我就烦一下。
04:03
哎,就这样一下,所以呢,咱们去声明你这个C对象的属性的时候呢,我们这里描述一下,就是需要呢用private final来修饰。啊,这个来修饰,那这块呢,我们呃把这个呢,哎要不写成一吧,哎,然后这个在构造器当中呢,或者这个你写成一,这个写成二,你再写三的话呢,那就呃需要在这个里边去,哎给我们这个final的属性去赋值了啊嗯,这是说明它的属性此时报错,为什么A负值吧?哎,因为final呢,咱们说这个不能用默认初始化值去负了,那可以在哪些位置付呢?有显示赋值,构造器赋值,代码块赋值,对咱们前面讲过的,那么如果你显示赋值或者代码块中赋值会导致呢,这几个对象呢?他们这几个都一样。因为你就只能复制一不能变了,就是吧,那如果你想说每一个对象呢,这几个属性值都不太一样,那就在构造期里边去付啊,咱们这儿呢就不太一样了,所以我放到构造器里边。
05:12
哎,Season name,哎,哎season的一个描述啊,在这里边我们这点2SEASON name,哎,西顿的一个描述,哎,好OK,那这呢,就我们这叫,哎私有化构造器并呢。哎,并给我们的这个呃,对象属性开始复制。啊,或者要初始化啊都可以行,这是第二步,然后第三步呢,你把构造器都私有化了,说呢这个类呢,在外边不能造对象,那你在里边得造了,哎,那就是提供哎当前枚举类的多个对象。行,那多个对象咱们就不再去提供他们的get方法和set更不行了啊,直接我们就只是作为常量了,那不提供概算方法了,后边还想用。
06:10
是不是直接就public了,哎,Public这个呢,我们直接呢,通过类去调了static了。哎,你那对象造好以后呢,作为常量出现final的season,那既然常量了,咱们都得写成大写呗,Spring等于这呢,就直接new一下叫season啊,这呢去填了一个参数,嗯,这个叫春天逗号,季节的描述啊,季节的描述啊,写一个比如说叫春暖花开。好,这是其中的一个对象了,那类似的我们再去找另外的三个,夏天summer,秋天autumn a autumn对着是吧,哎,冬天wintern,哎,这样这呢改一下。
07:19
冬天行,那么夏天的描述,夏日炎炎,秋呢秋高气爽,大家呢,果真词汇量都不太多是吧,想到的词都一样啊,东都都没有词了是吧,啊啊行,冰天雪地,嗯呃,这个呢,咱北方呢,基本上见过雪,以前的时候这个南方基本上不下雪,现在这个天气也比较反常啊,现在像这个一八年的时候,这个南方开始下雪,北方倒不下了是吧?嗯,当然印象很深刻,就去长春的时候呢,确实下雪很实惠啊啊,这个一夜完了以后呢,一出去一脚深啊,这雪下的确实很大,然后南方同学好多呢,确实是没见过雪的,那确实异常兴奋啊,而且呢,就是下雪跟下雪确实不一样,下雨的话呢,嗯,有的没什么感觉,但是下雪确实有一种那种浪漫的氛围是吧,嗯,比较。
08:19
适合于去表白啊,嗯,就是你都表白一个人,那肯定只有一个,顶多一个人成是吧,嗯,哎这呢,我们就把这个对象呢就造好了,这里边需要注意的就是哎,我们声明为叫public static啊,Final的啊这样的去修饰啊好这样的话呢,我们把这几个对象呢,就算是造好了,造好以后,呃,其他的这个功其实主体呢,我们就完事了啊哎,如果你还有其他这个诉求,比如说呢,你想这个其他诉求,比如你想呢,去呃获取咱们这个枚举类对象的属性,咱们呢,在外边可以直接去获取这几个对象了,因为是public了,但是你拿到这个对象以后呢,这个属性呢,呃,Final咱们倒不能set了,但是你可以去get,所以呢,你要需要呢,还可以去提供这个get方法啊,这个out shift s,咱们可以调这个get s啊,关于我们这两个。
09:16
对象的这个属性啊,然后OK一下啊,这个呢,虽然我点的是get和set,但呢只会生成get,哎这样,哎这是这个诉求,这算诉求一吧,哎,通常呢,我们接着呢,还会去提供一下这个吐词的方法。哎,CTRLC,哎这个呢,我们就去提供哎,Two string的这个方法,那目前的话呢,我们如果去打印一下你当前这个对象,它仍然是一个地址值,所以呢,Out shift s以下提供to s two s呢,把这两个对象的呃这个属性我们输出一下,好,仅此而已,那这样的话呢,我们把这个自定义枚菌类呢,就算是提供好了,提供好以后,后续呢,咱们在呃需要用的位置呢,你就去用就完了,这呢,咱们简单的做一个测试,比如说我们拿着这个season,哎,咱们呢,在某一个位置需要去拿这个season呢,去赋值了。
10:12
啊,就有点像咱们讲的那个,呃,员工呢,Status那个状态一样,咱们呢也是这样的方式去造了,造完以后呢,在我们的代码当中需要呢,给这个员工呢指定一个状态,状态呢,嗯,这个咱们当时讲的时候呢,这个我打开一下吧,咱们在给这个员工造这个员工的时候,成员哎他们就都有相应的这个状态了,这个状态呢是定义,我们定义为我们这个程序员当中的一个属性,哎如果你还记得的话,把这个呢都先关掉啊。开错了是吧,嗯,开错了这个啊。找一下咱们写的这个项目,项目的话呢,咱们在斗漫下这边是有这个叫程序员,在程员这个位置呢,有一个属性,哎属性呢就叫做status,这个属性呢,每一个成员呢,都需要给属性赋值,那么赋值的时候呢,咱们就是拿的这个,诶枚举类的这个对象呢,去做的一个赋值,这呢都作为常量出现的,哎咱这呢就不涉及到那样复杂的一个场景了,只是呢,在这演示调用一下春夏秋冬这几个呢,我们就都可以去调,哎,你需要呢去赋值,你就赋一下值就完了啊al enter,我们给他去。
11:31
呃,造一个这个变量啊,不妨呢,就叫做spring,嗯,然后呢,造完以后咱们呢,这块也是类似的这样方式呢,去做了一个赋值,回头呢,咱们在演示这个呈现效果的时候,比如说我们做了一个首先做了一个输出,这呢能呈现出来它的这个状态,这个相当于咱们就是调了一下你这个呃状态这个变量要state这个变量的这个to string方法了,哎,那默认情况下呢,咱们要是调呢,它又打印的是这个地址值了,那因为咱们现在这不都重写了这个叫to润了,咱们这个重写的方式跟当初这个重写的方式呢不太一样,那这块呢,呈现的只是你这个呃,一个属性名,就相当于我们这里边这个叫春天一样啊对,也没写前面这些东西,就光写了一个return呢,这个season name了,这呢咱们写的就稍微丰富一点,就是普遍的一种重写方案,那这块我们也可以去做一个set out。
12:27
好,这块我们做一个执行。你打印出来的就是这样一个效果,那如果说我们只想让它显示春天,那你就把一些把我们这个图存方法呢,给改一下就完了,那就没有别的这样一个需求了成,那这呢,就咱们这个自定义这样的一个,诶枚举类的一个展现,那咱们当时讲课的时候呢,你看一下咱们这个status。这是咱们自己写的啊,现在来看一下这个私有化构造器提供了这个属性,这个属性的话呢,是private这个final的,然后呢,我们造了这样的几个对象,Public static final,诶然后呢,我们提供了一个这个属性的get方法two three呢只返回了一下这个属性,这呢其实就是一个美举类,只是原来我们明明确呢提出来说怎么去造这个枚菌类的这样的几个步骤,哎,现在呢,大家就清楚了,那么之后呢,凡是大家呃需要呢,定一组常量的时候呢,大家都要考虑用这个枚举类呢去实现,行这呢我们就停一下。
我来说两句