00:00
同学们,那么我们就开始第七天的这个讲解,第七天的讲解。又没有声音了,对吧,好,我们看一下这个上一次课的作业,打开我们这个作业。啊,上次作业呢,我们今天早上就评讲一个特质,因为集合那块呢,同学们还没学对吧,我们就先评讲一下这个特质,呃,那么这个题的要求,其实看起来题给了很长对不对?其实呢,他的要求挺简单的,就是看你能不能把这个题读懂。呃,它的题是一个什么样的题呢?他说,呃,有这么一个类啊,Rectangle rectangle,这么一个类,它有两个方法,一个呢是呃,Translate。转换,还有一个呢,叫grow增长,但是但很可惜,像这样的就是说有Java里面还有一个这样的类,就是椭圆啊eclipse。
01:03
2D没有,这个类没有,那么在scan中呢,我们可以解决这个问题,他要求用什么问题来什么方式来解决呢?他要求我们写一个这样的叫rectangle rectangle的Nike一个特质,加入两个方法。加入两个方法,提供任何你需要来实现的抽象方法,以便你可以像如下代码一样混入该特质。其实它这个考察点呢,我这做了一个思路分析,你看它这里。他这里就说我可以干什么呢,我可以去,呃,使用这个就是这种方式。这种方式去构建一个double的这么一个实例,然后呢,这个呢要混入这么一个特质,而这个特质呢,需要拥有两个方法,一个是translate,一个grow。
02:00
那你看我这做了一个分析,我说考察点第一个呢,就是可以使用特质,当然这个呢,你可以用自身类型,也可以用简单的继承方式来编写,然后以动态混入方式来编写来扩展啊,它体现一种动态混入方式扩展一个类的功能的这么一个这么一个特点。然后呢,他要求在这里面写两个方法对吧,一个是trans,一个,那这个方法呢,其实就是把两把X值和Y值重新赋给它一遍,这个方法它的目的是什么呀?啊同学们,这个方法就是将。啊叫什么呢?将这个点的将什么呢?将X和Y的这个值怎么样呢?重新复制一下,就重新给一下重置啊,我们叫重置,而这个grow方法呢,呃,听这个名字大家也猜的出来,其实就是对我们X和Y这个坐标值呢,进行一个增长,就是你给我多大,我就增长多大,就是对什么呢,对这个X和Y这个值进行什么呢?进行一个grow进行一个增长,增长的处理,就这么一个意思。
03:16
啊,增长的一个处理。那知道这两点过后呢,代码就比较好写了,因为人家也把这个格式给你了,对不对,给格式给你了,那很简单,我们可以写一个这样的treat,这个treat名字人家都给你写好了。那这个句子干什么呢?非常简单,我们打开来简单的编写一下。那这样子哈,我就直接把这一个homework放在我们CHAPTER09里边,我建一个包,建一个包叫homeworker。OK啊,那我建一个新的scanner的类啊,那个object exercise exerc exercise01对不对,然后呢,建一个object。
04:06
建一个object,然后呢,我们写一个主方法。啊。诶啊,没有出来哈,重新写一下me。好,然后呢,我们把这个要求啊,我们把这个要求给大家复制过来,人家的要求呢,也非常的简单,就是按照这个方式来玩,是不是,诶按照这个方式来玩。好,那按照这个方式来玩的话呢,这个。呃,这个就我们按照刚才的分析,先写一个treat是不是,诶先写人家名字都已经给你写好了,叫什么名字呢?叫这玩意儿对不对,叫什么呢?叫recang。OK。那这个里面人家要求写两个方法,哪两个方法呢?一个translate it OK,那这两个方法我们从哪里来呢?诶咱们不要再重新写了,好,因为刚才人家讲了说这两个方法在哪里有,你要说在这个Java这个,呃,这个里面是有的,就这个方法里面是有的,因此呢,你看我这里写的很简单方式,我就去继承了一下。
05:21
你看我在这去继承这个,那这个很简单,我就直接把这个拿过来用一下啊,我就继承它,当然你也可以用,呃支持类型,对这个地方呢,我们需要引入啊,引入一个包包哪里呢,就引它啊引进去,引进去过后我们写进去这两个方法,就是穿类的这个方法。那这个方法怎么写呢?哦,非常的简单,一个是translate值对不对,A给他你看到时间他也浮这个值嘛,然后呢,我要接收两个值对不对,两个值,这两个值的类型呢,我们可以它就是整数对吧,我们也可以按整数来玩啊,也可以按这个整数来玩啊,当然这个实际上呢,也可以按double,因为我们知道整数直接给这个double呢,也是可以的,所以说我这就直接写double。
06:11
好,一个是X,一个是Y。XXXY,那这个做完以后我们干什么事呢?啊,非常简单,我们z.X。这个认认是从哪来的呢?就是从这个地方继承过来的,好,我就直接将这个值给它,同样的道理,下面z.Y也给它,也给它。好的也给他,呃,班班长你那有你那有班主任的那个吗。啊,你跟他说一下,待会啊,让班主班主任叫那个叫一个老师过来修一下啊,OK,好,这是写完了,然后呢,我们还有一个方法叫grow啊grow grow呢,看到人家调用方式也可以接收啊两个double,好,那么这个时候呢,我们我们也接收一下啊,接收这两个值,这两个值呢,咱们也叫这个名字也无所谓好吧。
07:04
就叫这两个值啊,然后呢,我们这个时候怎么处理的呢?z.X啊,因为它是增长嘛,就是加上一个X。对吧,加上然然后这个Y呢,诶同学们,Y z.Y加上等于Y,这个不就是增长吗?就是你给我多大的值,我增长多大的值,大致就这样子,好,这个写完了以后呢,我们就可以来测试了,就特简单特简单,怎么用呢?人家把这个方式都已经给你了,咱就省点事啊,直接往这一套。啊,用一用的话呢,大家都知道这个egg里面肯定就拥有了translate和grow这两个方法,那么我们来进行一个简单处理啊,首先我们打印出当前,就是在你没有变化的时候,这个鸡蛋的X和Y。它的一个情况,好,我们加上空格XY等于加egg。
08:05
点Y。好呃,然后我们现在运行一下,那运行一下,我们看看这个情况是不是它的横纵坐标就是五和十,这个是20和30是它的宽度啊。好,我们来看一下,诶,可以看到目前这个情况就是这样子的,就是5.0和10.0没问题,紧接着呢,我们调用它的这个方法。就是重置它的X和Y。好,那这个时候呢,我们就按照人家的要求吧,一个写一个十,一个是一个复十,好这个也OK了,然后呢,我将这句话复制一下,我们看有没有变化运行,那一旦运行起来过后呢,我们发现这边就确实重置了,好我们紧接着再来去用它的grow这个方法来玩一把,这个就是干什么呢?去动态的增长啊,就是增长或者修改都可以啊,增长什么呢?增长这个X和Y。
09:06
啊,这个也很简单,我们把这句话复制过来输出,看一看它的X和Y有没有发生变话即可。好,那么这边十和20呢,就是对它的X和Y进行一个改变,看十增加了,十变成20了,负十,负十增加了20。啊,这个是一个是增加十啊,这个增加了20过后呢,它本身负十加上20就变成正的十,好,这个就是这么一个题的评奖,很简单,这个题的考察点啊,主要就是考察大家去使用啊这种继承的方式来扩展一个treat。然后呢,再让一个类去扩,用混入的方式,以混入的方混入一个特质的方式来扩展我们的功能,除了这种写法呢,我们还可以有这种写法。
10:02
什么呢?咱们这是传统的写法,诶,这是比较传统的写法,那还有一种写法呢,就是利用我们的什么呀,利用我们的这一个,我们叫做呃,自身类型来扩展也是可以的,比如说我在这写个二,那这个时候应该怎么写呢?咱也可以这么去写,你看啊,这样一写this没有了,因为你这个this是从上边带过来的,现在没有,没有的话呢,怎么办呢?咱们可以这样this。点,然后把这个类型写进去,来一个,这样指定也是可以的,这种方式呢,就是要自身类型,我们前面已经说过了,这种写法一样可以用,比如说我把这个换,换成REC tle ni2,一样可以跑起来,一样可以跑起来,诶所以说你将来看到别人用这两种方式呢,都应该可以理解哈,两种方式均可。两种方式均可。好的。那现在呢,我们来继续往下走哈,这个评奖我们就到这里,评奖就到这里,好截取一段视频。
我来说两句