00:00
那接着呢,咱们看一下这个,呃,练习六,哎,这道题呢,咱们去做一下,这个题里边呢,其实就考察了,呃,咱们涉及到这个参数传递的时候啊,传进去的到底是什么,还是练这块内容,那其实的话呢,咱们嗯,今天讲的这个内容,那之前其实也用过,像昨天讲那个学生数组的那个也用过,之后的话呢,大家更会用,所以这个事儿呢,永远都逃不掉了。哎,咱们基本上调方法的时候呢,多数情况下呢,都会考虑给他去放参数,只要你放参数,他就满足咱们今天讲的这个参数传递。啊是这个意思啊行,那这道问题呢,咱们就来做一下啊,嗯,首先呢,说定义一个SQL的类啊,包含一个这样的结构,好,那咱们就先定义一下CTRLC,诶回到这儿这个练习啊,练习的话呢,这是一个,那我就再直接再再新建一个吧,练习一啊这是独立的一道练习题,首先呢,我们建一个类叫做circle。
01:06
哎,定义过来行,那么SQL里边呢,说定一个double型的readers double型的readers啊表示为干净。哎,CTRLS一下啊,下边呢,说定一个find的方法,这个求面积啊,他写了叫返回了,哎,那你就给它返回一下,哎,这个咱们说过了,是不是不能有参数啊,对,别写错了啊哎,Return一下,这个你可以用这个ma的对,用这个常量派啊也可以,然后乘以readdius,哎,再乘以这个readus哈,好这呢就是这个求面积的方法,那这比较简单了啊,你要是这个方法复杂的话呢,那这个注释呢,你可以写一写啊,方便呢,就是自己看和别人看啊,求圆的面积。行这个功能呢,就搞定了,接下来。
02:04
说呢,定义一个叫pass object,在这个类里边怎么怎么样,好给它创建一个。创建一个class叫pass object finish过来把刚才这个说明呢,我们都拿过来啊,这这分了两个了啊,先把这个CTRLC。诶,CTRLV啊粘过来,然后把下边的这个may方法我们也拿过来,CTRLC。停车位好,咱们呢,就在这块呢,来看一下。来看下这个问题,说定一个呢,叫pass object这样的一个类,在类中呢,定义一个方法叫print area,然后这个方法呢,定义如下,它都给你写好了,那你就CTRLC一下给他拿过来。
03:04
哎,就这么着啊,说定一个这个方法,然后呢,在这个方法里边干什么事呢?下边说了说呢,方法中打印一到time之间每个整数的半径纸。啊,以及呢,对应的面积啊,比如说呢,我输入的times times,它这个能改去掉S啊,当我们输入的这个times是五的时候。我们呢,去输出半径为12345,就包括你这个time啊在内的每一个半径对应的圆的面积。啊,这个他也给你这个有个截图了哈,就是这边叫readus,这边呢,就是你对应的面积了,行,那完事以后的话呢,最后还有一个啊说no read is6.0。啊,这是这两个操作,那我们下边呢,就在may里边去调一下这个find area print area成,那咱们来写一写啊,嗯,这个呢,就是我们传进来的一个圆。
04:01
啊,这呢是我们回头调方法的时候呢,要给它设置的一个,呃,这个这个算是半径也行,或者叫那个截止到哪个数也行啊那咱们进来以后啊,首先的话呢,你会看到这有一个虽然要说明一样啊radius和area,那咱们呢,也是先给它输出一下,嗯,这个我们也叫做re。然后杠T杠,然后呢。这样写没问题吧,写到一起可以吧,可以的啊,就是读的时候呢,Read完以后,一到杠T了,自动的就给你制表符一下了,嗯,行,那这个完了以后。下面的话呢,我们下一行需要呢,把1231直到time的每一个半径呢,这个给它读出来,那我们现在这个圆已经有了,就是回头你附的时候呢,给它这个附上啊,那我们首先要做的是不是给这个圆的圆来附这个半径纸啊,哎,我们就要设置。
05:08
哎,设置我们这个圆的半径啊,这个半径的话呢,它这边一会一一会二一会三的,是不是就得是个循环了,哎,我们放一下in特I等于从一开始I小于等于time对开加加进来以后,我们C呢,直接调它的readus,就拿我们这个I呢去赋值,哎这样子就给这个半径呢,就设置上值了,嗯,半径设置上值了,然后呢,我们需要呢,每遍离一次,需要输出对应的半径和面积。那直接呢,我就在这c out了,哎C点上面你设置好了,我这再去获取,哎这就出来了,哎获取以后,哎你上面呢有杠T-T,那我这也杠T-T一下,然后接下来再把这个面积呢写上,哎直接呢C点哎find area就可以了。
06:06
啊,有的同学可能从那个情感上又不太好接受,说这个怎么该写一个变量的,怎么又整了个这个,又整了这个,还整了个方法,昨天咱们说过这个事儿啊,就是对于我们编译器来讲,这个范,这个方法呢,它返回的是个double型的变量,编译器看到的呢,它其实就是一个返回的这个变量。啊,就是这个情况,你要是觉得这样写呢,目前还不太好适应,你可以呢,完整一点写,就是先调这个方法,哎,先得到一个double波形的area。哎,然后呢,这个位置呢,哎,就去调一下我们这个area就可以了。其实是一回事啊,只是没有显示的给它复制成一个变量名而已,好这样的话呢,我们就能够打印它的这个半径和对应的面积,在A加加,这样循环完以后,诶,正常来讲的话呢,就应该能够出现这个效果。
07:02
对吧。那就应该可以了,这块呢,我们等下去说啊,那上面这个能显示的话呢,我们测试一下,那测试呢,咱们比如我在上边这啊写一个没方法。这个方法要想调,我得造当前你这个方法所在类的对象。哎,我们就要做test,好,那我去调这个啊,叫print area,你就需要传这个参数了。后边这个呢,咱们可以给大家写死一个,比如说就还是五,那前面这个C你这就没有。嗯,那需要咱们提前呢,把它造出来,对同学说我直接扭进去也可以,就是你要是只掉一次的话呢,可以直接是不是使用这个匿名的方式啊。就是CTRLC一下,我直接CTRLV,这是不是直接我这样把它附给这个C也行是吧,也可以啊,或者我这个就先标准一点,就这样写,我用完以后把这个C呢付过来啊,就付给了这个C了。
08:05
然后在这里边呢,对我们这个对象呢,是不是进行属性的一个赋值。成成,那咱们这块呢,执行一下。OK,哎,这这基本上就就出来这个效果了。哎,这呢,就是咱们这个题面的前半部分啊,涉及到呢,关于这个,呃,一到time这里边的半径和面积的输出,后面的话呢,它还有一个说no radius is6.0。说现在这个圆的半径呢,是6.0。嗯,他也没有明确说这个输出语句是写在这里边还是写在外面,他没说。嗯,但是你要从他这个题目要求,它是考这个叫直传递的啊。考察咱们这个参数的直传力啊,那呃,其实呢,他应该是想让你写在外面,但写里边也无所谓哈,啊,其实他是想让你写外面,那我们在这块呢,就输出一下说no。
09:07
啊readdius啊is,然后我这块呢,哎c.radius那这时候呢是6.0吗?测试一下诶,这是5.0。哎,为什么是5.0呢。对,因为它是五,然后我们赋完值以后变成六的时候,是不是没进去,所以这个呢,就没有再操作了。哎,对,那你可以在这里边呢,完事以后在这个位置呢,给它这个再接着重新赋值,哎,这个赋值呢,你就c.radius这个负谁呢,是不是就是你这个time的加一啊,哎,拿它去付就可以了。哎,执行。
10:00
哎,这个呢,就是6.0了,嗯,这个为什么他实际上是想想让你写这呢,就是这个题目是想这样去考察你啊,就是咱们在外边呢,造了一个circle,此时呢,如果我要是去cor这个C的radius,这时候是几啊。我在调这个方法之前去out一下。0.0吧。对吧,哎,这时候是0.0啊,然后呢,我们把这个引用呢,就放进去了,放进去呢,实际上这个值传递,传递的是个地址,所以呢,你在里边呢,去操作你这个C的半径,相当于就是在操作我。啊,包括呢,你最后呢,把这个半径呢,又改成六的时候,呃,其实操作呢,还是我们唯一的这个对象,所以当我出来以后呢,我再去执行我外面的这个C的半径,发现呢,也是你里边改以后的。啊,这就是这个题目呢,想说明的这关于直传力的问题啊呃,这个呢,你写成time加一也可以,或者的话呢,啊,有同学说想用I去复值,因为I呢确实加加过不满足出去的,但是你这时候呢,你要写这个I是不是掉不了啊,因为I在这儿呢,那你只能是是不是把它整到这就可以了。
11:18
哎,这又考察了一下这个for循环的这个变量的一个使用范围啊,诶把它放在上面,这个呢,初始化全件就不要了,然后呢,这块呢,加加它其实变成过六进不去出去了,出去呢,哎不是在for里定义的,所以后边还可以用,这时候I其实它就是六啊一样。哎,就这样来写啊,哎,这道题呢,大家下来呢,哎,可以做一做,当成一道标准的一道这个题目啊,考察一下这个关于直传递的一个使用啊,包括呢,我们前面讲的造对象调方法,这也相应的也考察了。
我来说两句