00:00
好,那构造器完成以后,咱们接下来呢,还有两个方法,第一个方法呢,叫get all employees,就要获取所有的这个员工了,嗯,这个里边写了说获取当前所有的员工,包含所有员工对象的一个数组啊,咱们其实不就把它都存放在咱们这个这个属性当中了嘛,啊这里边就可以了啊然后接下来一个方法呢,叫get employee,诶int型的一个ID,找指定ID的这个员工,诶你给我返回回来,这里边呢是有风险的,就是有可能你这个ID呢,用户输入的这个不靠谱,就比如说咱们在刚才那块演示的时候啊,演示的时候呢,这块呢,呃,我们在这个位置,我先选一个二,这叫添加员,添加这个成员了,这个呢,我们就需要找某一个ID的这个人,那现在我写一个15,显然呢,就根本没有一个员工的ID是15了,此时呢,我要一回车,他就说不存在啊,这个时候呢,就是调的方法,就是咱们这里边的这个方法。找指定的ID的个员工没找到,抛了个异常叫找不到指定员工啊这呢又涉及到关于我们这个自定义的一个异常类叫team,呃,Exception这样一个类的一个创建啊,又来复习一下咱们讲的这个异常啊成那咱们就来完成一下这两个方法,首先第一个啊叫get all employees啊这个方法。
01:23
这里指明了说获取当前所有的员工,嗯,就是这个意思,咱们当前的这个,呃,Nameless service当中这个属性呢,是一个私有的,实际上呢,咱们下边这个方法就相当于是他的一个get方法。对吧。啊,就是获取这个员工就可以了啊嗯,Get all employees这个位置呢,我就直接呢,就是employees。理解吧,啊,就是把所有的这个,把这个员工数组呢,返回一下就行啊,然后再接下来呢,就get指定ID的这个员工。
02:01
哎,咱们直接从这粘一下。这个时候呢,是有可能返回是一个没有的啊,以前咱们返回没有,这时候就给返回没有了,我们去一个异常,那这时候呢,我们想指找指定这个ID的这个员工,这个怎么处理啊,我想找这个ID,比如说是五的员工,如果有你就给我返回没有的话抛个异常怎么整。你是不是得去那个数组当中找一下有没有这个ID15的这个人呢?是不是就得变利了,对啊,所以for啊,In的I等于零,I小于employees数组点lengths,哎,佳佳,然后然后然后衣服呗,哎,这个员工employees这个数组,这个数组第个位置,这都是一个员工了,去get一个他的ID,这个ID是个int型的,我就用等等了。
03:03
如果你要是个阴型的呢,型这用等等合适吗?看看你这个工地了,我要是阴这就用等等行不行呗,行啊啊对,有同学说到那个负128到正127的那个事了,记得吧,嗯,当然这个呢,你不知道那个事也无所谓,就是嗯,它就即使这个是负128到正127那个是恰好你用等等呢,是你撞上了是对的是吧?嗯,那正常来讲这个呢就应该用equals。对吧,哎,就是凡是这个对象咱们去比较说这个两个对象这个数据是不是一样的时候,咱们都是用的equals啊,对象的时候呢,你等等是不是比的是不是指向的是同一个引用啊。对啊,这个呢,因为是基本书类型啊,所以咱们用等等就行,如果我这个ID写的是一个当初我在设计的时候用的是一个inte类型,这个大家一定要注意使用equals啊,即使呢,呃,这个我们的ID呢,都没有超过那个正的127,你这形成等等也对了,但是实际上是你你你撞上了是吧,让你给撞对了啊呃,本身就应该用ES,这个呢,我们是等等判断是ID,那就是相当于找到了,那找到了就给人返回呗。
04:31
哎,就返回这个员工就完了,嗯,那返回以后,返回以后其实我们这个这个方法到这儿相当于就结束了,就是你看啊,咱们讲这这个for循环假设呢,我们这个啊,不用假设这个我们知道啊,这个数度的长度12假设我第三个位置就找到了,第三个位置找到了,相当于这个循环还会往后走吗?不会了,其实就相当于我们后边也没有必要涉及到什么break啥的了。对吧,那你要是没找到,那就一直找,一直循环结束了,相当于是都没找到,都没找到怎么办呢?抛个异常呗,这些异常的话呢,是咱们自定义的,那咱们就定义一个,他这块呢,提到说在service下提供一个啊行,那咱们找到咱们自己写的这个,在service下新建一个class啊,叫team啊exception,嗯,还记得咱们说自定义异常类怎么来做,不自定义一个异常类是吧?自定义异常类的话,咱们说有几个点需要注意的啊,首先呢,我们需要让他去继承于现有的一个异常体系。
05:50
啊,你否则的话,你就是一个普通类继承一个object了啊,只有是咱们这个exception这个体系下的,你才是一个异常类,那我们通常呢,继承的要么呢是exception,要么呢是诶runtime exception啊就这两个啊,关键呢就是看你是想就是编译时候别报错,还是说编译时候也报错,你像我们要是继成这个exception的话呢,你要这块要用是不是编译的时候呢,就报错了啊,你就记着编译的时候就得需要去处理了啊就这个意思,行这呢,比如我就写成exception,好,这是第一个点,第二个。
06:21
需要干什么?哎,提供构造器还有一个点就是说你看这个类里边是不是都提供一个常量啊,哎,这个呢,咱们也提供一下,咱们前面呢,稍微提供一下这个事儿啊呃,后边呢,咱们讲到这个IO的时候呢,再详细的去说啊,IO里边这个对象流的时候,我们再说一下这个,呃,序列的这个版本号的问题啊,就是为了呢,就是我们在传输这个对象的时候呢,保证它这个呃两端这个是能够识别出来唯一的这个类,所以我们才去提供这个idd的,不就是识识别一个身份嘛,呃,这个身份呢,是来识别这个类的啊呃,这个后边我们再详细的去说,然后接着的话呢,我们再通常提供几个构造器呗,呃,构造器public啊嗯,Team,嗯,Exception呃,这呢是一个空餐的了,相当于调的是这个super空餐的这一个,嗯,通常呢,咱们还会提供这个重载的,像代餐的啊,比如说你私真性的这个message。
07:20
那那这个你掉的负类呢,也是这个代餐的这个就OK了。就这样行,这就搞定了啊,嗯,这个完了以后写好了,回到咱们这个nameless service这块,我们就去thrownu一个叫team exception这个咱们就调这个代餐的,这就相当于是你没有找到啊,没找到的话呢,这句话呢,你自己写也行,或者你就用他这个也可以找不到指定的员工。哎,这样好,因为呢,我们这个时候呢,Team exception,你是继承于exception。相当于你不是一个运行时异常了。所以说这时候我们对于编译式异常是不是一定要考虑进行处理啊,暂时呢,怎么处理?
08:05
是不是这给出来我们异常处理的两种方式的,那咱们这时候用哪个,咱们前面也说过,说这个什么时候用ROS,什么时候用catch,那这个呢,你你选哪个。选这个选车开始啊,它俩的区别什么?一个是想让给你抛出来,他没有真正的去处理,另外一是不是给处理了,对这个呢,咱们前面说过啊,就讲这个经验的时候说过,那这个时候咱们用roses更合适一些啊,因为咱们这个方法呢,这都是咱们临时写的方法,到后边呢,你是整个是不是在咱们这个team view里边去整个去调用它们呀,呃,在那个位置你调到这个方法的时候呢,出异常了,咱们再去拆开始啊,给用户一个提示,一个怎么样的,这个时候就不要去处理了。啊,就先暂时的给大家都抛出,在整个最后我们统一调这个方法的时候呢,我们再整体的去,诶拆开吃,哎去拆开吃啊好,那这样的话呢,就把这个异常呢给大家抛出去,抛出去的话呢,回头调的时候呢,真要出现了,那你这块呢,再去catch一下,这呢就是咱们关于这个叫get employee啊这个方法的一个设计。
09:20
啊,那这个类呢,我们就搞定了啊,比较困难的就还是关于这个构造器里边相应功能的一个这个实现啊。
我来说两句