00:00
下边呢,我们来看一下这个客户的这个题目哈,诶通过这个题目呢,大家来再来体会一下我们这个这次的使用,这呢我有两个类,一个呢叫鲍尔,一个叫girl啊,一个男孩一个女孩,诶在这个过程当中,我们去用一下这个Z,诶首先呢,先看这个鲍尔这个类啊,哎,这呢我就再去新建一个包。哎,这个都是咱们这个练习的啊,哎,我首先呢来造一个类叫做Bo,哎,Go呢,我们也先给大家先声明出来也可以啊好,那先来写这个boy了,Boy这块的话呢,呃,有name和age私有的。哎,这呢,我们就写上这样吧,就老是这样翻着可能有点费劲,我就把它移到这边。好,这样写啊,诶private string类型的name private型的age,好下面的话呢,关于这个name和age呢,有get和set方法。
01:01
这块写的写的也不少了是吧?嗯,这块我们就写的话呢,呃,如果大家老是写,已经写的很熟了,写的都有点反胃的感觉了是吧?哎,在我们这个CL当中呢,这块有个S。S往下走呢,有个叫generate产生get和set方法点一下,诶这两个呢,你就勾勾这个,具体勾呢,其实是体现为一个get,一个set,然后呢,你OK一下,这就写好了,嗯,你看这个get set get set,而且呢,它默认的这都是用的这个属性名啊,这是自动的,就给你加上这次了。啊,再演示一遍啊,不就是在这儿是吧?诶在这点一下就出来了,或者还可以这样,我嗯,Out shift s快捷键也可以点出来,这一选也OK,两秒钟啊就搞定啊,你会感觉很神奇是吧?啊,构造器也可以,看构造器也可以啊,我再过来或者呢,就懒得点了,你直接点out shift s这块有个叫generate construct产生构造器,使用已有的属性点开,我想要个空参的,大家都不要好OK,它就出来了,诶这个没见过,没见过你就先删掉。
02:23
啊,就当没有看着是吧,啊后边咱们再讲这个super复啊讲完这个集成以后,这呢,这边是空三的就出来了啊想要代餐的啊,你这边点也行啊点一下哎,我想要两个参数的,OK,哎这个呢,也没见过先也干掉先,诶这不就给你造好了。啊,一个参数的也行,要几个都可以啊,这个去掉,你想要哪个你就勾哪个就完了,哎,然后OK,这个没见过,先把它也干掉,哎,这就行。诶你看这代码这不就写差不多了就是吧,嗯,对这个呢,前提呢是大家先写熟以后哈,别这个盖赛的方法自己还不会写呢,就开始跑,然后呢,这个让你手写代码的时候呢,你这个就那SS啊沾沾瑞一下是吧,那那不行啊,得要自己写啊啊。
03:22
是吧,没事是吧,啊这就写好了,然后呢,看看还有没有其他的需求,这呢有一个叫Mary啊吧,嗯,Mary说呢,他想娶一个女孩啊,这个方法写一下public VO Mary他想娶的是一个女孩啊,你也可以建一个重载的,他想还取一个男孩是吧,有方法的重载是吧?嗯,这块的话呢,我们想取一个女孩,所以我这呢声明的就是这个girl啊这个类型的一个变量了,这块呢,我们就sit out一下啊说我想取。取是吧,取谁谁谁这个呢,你别写我想取购这这就出来这个购的地址了。
04:07
哎,你是不是想取那个购的那个name,咱们目前还没有造呢,还是吧。哎,那记得一会儿的话呢,我们得给人家诶提供一个name,然后呢,这块呢,想取的是那个名是吧,通过名说一下啊啊先写成这样,然后下边呢,有一个叫short public void啊SH。SH,他喊是吧?喊什么呢?这块我们写说如果啊,你的年龄啊,大于等于22岁,就是到了一个合法的结婚的年龄了啊,这个时候age呢,其实前面我们省略了这点。啊,这个时候呢,就是可省可不省都可以啊,如果你要是大一点,22岁了,我们就说还说呢,哎,你可以啊去合法登记了,记结了,这是这样一个情况啊,然后else else呢,就不足22岁啊这块呢,我们就说啊先呢啊多谈一谈恋爱是吧。
05:17
啊,这样。诶,这里边儿呢,我们这块也体现过这个这次的一个使用啊,只是通常呢,我们都省略了而已啊行这个类的话,暂时呢就先写成这样了。然后呢,我们来看这个叫go啊,看这个类啊,嗯,这块呢,也是首先声明这个属性,哎,Private string形的name private in的age,好,然后也是提供这个get,嗯,只光用这个name是吧,年龄呢,没有提供,那就光写一个name的一个,呃,改善方法啊,Al shift s。关于name的啊,OK,哎,这就写了写好了。
06:00
啊,然后构造器呢,咱们也提供一个啊,构造器呢,Out shift s也行,或者点也可以两个参数的行,哎,把这个呢去掉啊,这个他也没有说构造器这块严格让我们提供什么样的这个大家呢,你就呃自己想提供多一个少一个啊都可以啊嗯,接下来我们去提供它的两个特殊的方法,也叫Mary啊。哎,Public VO Mary,我们这呢叫boy boy啊说呢,哎,我想嫁给谁谁谁啊,就这样。哎,我想哎嫁给哎这块我们就调这个boy.get一下name啊看刚才我们这个boy这块呢,哎这不也写这个叫get name了,这时候就不报错了啊哎,因为咱们在这呢,刚才提供这个get name了,哎这样啊保存行哎我想嫁给谁谁呃,这个咱们这个经常呢说说,嗯,女追呃,男追女隔座山,女追男的说隔层纱是吧,呃,这个女女生追男生说相对来讲要容易一些啊,这个女生都明确说了,说我想嫁给你,这个男生立马就有回应了,说我也想娶你啊,假设是这种的啊,那现在呢,这个男生马上说我也想娶你。
07:23
啊,不用输出了,直接咱们boy尔当时是不是定义过一个Mary啊,哎,我也想取这个,就是他想取的那个人,这怎么写这同一看诶这这需要一个变量,变量呢,诶还讲过匿名对象啊,你一个勾这这这还没有空三的啊,造一个空三的,这这这成什么情况了。我就先整一个空仓的了啊。说这个调这个方法的呢,肯定是个女孩了啊,假设是这个A女孩是吧?这个女孩呢,想调这个Mary说我想嫁给谁谁谁嫁给这个男孩,这个男孩呢,立马回应说我想娶你,扭了一个勾,这是不是就另外一个B勾了勾B是吧?嗯,这这这就不对了哈,他这个男生如果说我也想娶你,我想娶的是A啊,这怎么办?
08:23
他想取的是A,哎,这时候呢,就直接写个Z,别写点内了啊,咱们这个时候需要传的是一个go类型的是吧,就写个这词就可以了。诶这儿呢,大家体会一下这个问题,这次呢代表的是当前对象,谁掉这个Mary谁就是这次啊,这不就相当于是你那个A那个女孩嘛,看是这种啊好,然后他还有一个方法叫做compare啊compare的一个方法,哎public,哎,这个compare方法呢,我们稍微呢提一下啊,后续呢,咱们关于对象排序。
09:06
对象呢,也可以排序哈,关于对象要是排序的话呢,咱们可以用这个compare。啊,就像咱们这个之前呢,讲数组的时候,给大家提过这个事儿,大家呢,点那个外卖的时候呢,说你这看到是一个菜,或者你看到这个这个哪家饭店也可以啊,这是一家饭店,这是一家饭店,这是一家饭店,这家饭店还有下边好多家饭店,原来呢,咱们提的时候说啊说这一个图片,这有个名,这有一个这什么价格啊,或者有个评价,诶咱们当时呢,是把每一个信息单独的是不是造成一个数组啊。这比如说这名字是不是所有的名字咱们造到一个数组里,然后价格呢,是不是单独的把价格放在一个数组里,是吧?呃,原来是这样说的,那实际咱们开发当中呢,其实都不爱这样去造了,怎么造呢?这个整个呢,咱们可以把它看成是一个对象,对这一项呢,整个看成是个对象,那这个对象的属性呢?啊,有这个名字价格啊,评价啊,这个这个地址啊,图片的一个地址,诶把这几个呢,都作为我们这个对象的属性出现,那这呢,是不是就是好多个对象了,哎,那么我们是不是就造一个这样对象类型的一个数组啊,对吧。
10:29
诶,我这儿呢,是一个数组,这个数组的每一个位置呢,是一个你当前这个的对象,这几个位置呢,作为我们这个对象的属性出现啊,是这样子的啊好,那么咱们会看到呢,说诶这里边儿的这是一家饭店,这家饭店,这家饭店这家饭店,然后呢,每一家饭店都列到这儿了,我们呢,会看到它这块儿有一个排序。啊,这里边儿有默认排序,那就是它默认列的啊,还有一个呢,就是按照这个由近及远啊,还可以比如按照评价从低到高,从高到低等等,说白了就是你这儿呢,既然每一个位置都是个对象,是不是就会涉及到这个对象去比较大小了。
11:06
只有能比较大小,这不才能叫排序吗?那对象跟对象之间怎么比大小啊?对,就得看属性了,你要说我们这个对象的地址是他这个对象的地址是那个啊,比较地址谁大谁小,这是没有意义的,哎,比较地址是没有意义的哈,咱们地址呢,你甚至都可以认为是,诶Java给我们随机算出来一个地址,所以这不能比了,诶那我们比呢,就是它里边的一些属性,比如说你像这个呢,50个人点赞,这呢70个人点赞,那我们这按点赞数,那那就相当于是按照这个属性去排了,哎,所以呢,我们关于对象排序呢,都是考虑对象里边的属性啊,按照某一个属性排,或者一个属性搞不定了,就按照两个排。假设呢,你有某一个属性,它俩的点赞数一样,那你可以再按照距离啊,就是我们可以找多个指标啊,那这里边呢,像我们这呢,就类似的是这样一个问题啊,这呢就是compare说比较两个勾啊,我们返回的是一个int,后边呢咱们会见到啊呃,相当于提前咱们可以先提一提,像这种呢,我们就把它看作叫比较两个对象的大小。
12:18
啊,那么这个返回值呢,是一个int int怎么看呢?如果返回值是一个正数。哎,我们就认为叫当前对象大。啊,如果返回是一个负数,那就是当前对象小。哎,那如果是一个零对,那就是二者一样,二者指的是谁呢?一个是当前对象对,一个是我们的行参对象,他俩呢,相等。哎,这里边涉及到两个对象,当前对象就是调你这个方法的那个对象,哎,行三呢,就是这个对象,好好,那这块呢,咱们就可以比较了哈,比如说如果我们发现当前对象的A是大于你这个勾的A值。
13:14
哎,那不就当前大我们就返回一个正数,不妨呢,就返回一啊,Else if啊c.H呢小于啊,勾点H,哎,我们呢,就re return一个负一啊,再奥哎个零。哎,这样的一个写法是吧,哎就可以了啊啊,其实呢,这个我们也可以给他,呃,简化简化。哎,还可以呢,给大家简化简化啊,干脆呢,我们就直接return,诶z.H我就减去这个勾点H得了。啊,你要是正的,那自然而然就是正的,负的也是负的啊,零就是零是吧,哎,这样写也行啊,哎,当然这块呢,呃,简化不简化不是咱们现在说的问题哈,咱们现在呢,主要是想让他体会,就是这个时候这个Z跟那个go哈,这是两个属性,它代表的就是调我们这个方法的那个对象的属性,这个是你行参这个对象啊,是这样的的。
14:19
啊,那结果的正负,这个咱们目前呢,其实还不怎么关心哈,这块主要来体会这体会这个这次相当于顺便呢,咱们讲了一个对象呢,实际上是可以比较大小的了啊,那这个呢,就是谁大谁小就清楚了啊后边呢,咱们讲到集合的时候呢,可以体会一下这种排序的问题啊,成这呢就写完了,写完以后呢,咱们简单的先测试一下啊。哎,我这呢,再去造一个,比如叫boy和这个girl的一个test。哎,没方法进来。哎,在这里边,哎,我们这个Bo Bo等于new一个boy out斜杠,哎,咱们呢,提供了好几个构造器哈,比如这个吧,哎,起个名字。
15:03
嗯,罗密欧与朱丽叶,罗密欧与朱丽叶,这个男的叫罗罗罗密欧是吧,这有时候经常这个感觉都混混了哈,这是难的哈,年龄比如说21岁,好,那这个boy呢,他这有个少的方法喊一下是吧,这个他不够22岁,所以谈恋爱只能啊,然后呢,我们这个呢,他想去这个girl呢,还没有,我们可以先造一个是吧,Girl。诶拗一个啊勾啊alt斜杠,诶我们呢,提供过这样的两个构造器,用这个吧。啊,罗密欧这叫朱丽,这个18行,你有喜欢18的是吧,嗯嗯,好写好了,写好以后呢,我们这时候这个go啊,用它调吧,Go呢有一个叫maryry,哎,我这把这个boy呢放进去啊,就是把O欧给放进去了,哎,这时候呢,他写的这个话。
16:12
就这啊,说这是这个girl说的啊,我想嫁给罗密欧啊,里边立马又回应说,我也想娶朱丽叶,哎,就是因为咱们这里边儿这么用的这个Z。啊,这个体会一下啊,行,这是它了啊嗯,那这个compare这块呢,也可以测一下,比如我们在这个造一个另外一个沟啊,哎,中国呢,有这个叫呃,梁山伯与祝英台,呃,这个祝英台是女生。嗯,这个也也18吧,哎,这一样了是吧,19啊这时候呢,我们你看谁掉了啊,我要拿这个勾去掉compare,把这个勾一放里边了。哎,把祝英台放里边了哈,那这时候呢,我们返回的这个值,哎,你说是正的负的。
17:07
哎,我们这个我这样写吧,哎,我这写个if啊,如果我们这个compare呢,它大于零,哎我们就说这个,嗯,哎勾点啊,他那get your name说它大是吧,哎这不就是我用它调的啊,我用他调的,如果结果是个正的,就是他打。嗯,Else,衣服。哎,小于零。啊,那就是你那个行参的那个档。嗯,勾一的这个大啊,然后再一个L,那就是它俩一样大,那就这样啊,那显然呢,咱们这个输出的是。是不是这个负数啊对,因为咱们这里边写的不就是他俩就直接相减呗,嗯,调这个方法的就是,嗯朱丽叶,嗯这个呢,我们是把这个祝英台给放进去了,嗯朱丽叶18岁减去这个。
18:09
祝英台19岁啊,这就是负一嘛啊,负一的话呢,这不就满足这个嘛,哎,就这个啊。哎,注音太大是吧,哎,确实注音太大,19岁嘛,这样行,哎这块的话呢,是咱们关于这个Z关键字的一个使用的一个例子啊呃,这个大家呢,也可以去写一写啊,这是这个问题,呃,这个问题完了以后呢,呃,咱们课后的话呢,就关于实验一实验二啊这两个题目呢,大家就都可以写了,其实啊。
我来说两句