00:00
那接着呢,我们看下边这个问题,这个题目的话呢,看着非常呃,虽然比较短啊,但是这个题呢还是有很多坑的,哎,这是这练习,我接着呢就也写到这儿了啊,那这个题的话呢,刚才这个题让大家见到了,就是我是可以拆开写的啊,那下边呢,我又给大合一起了,就看着这里稍微要要干净一些啊,大家呢,怎么都可以哎,然后我们来写一下这道问题啊。这呢是咱们作为一个测试类出现,然后下边的话呢,我去专门写这个circle这个类,哎这呢咱们说了,这不是说让你创建一个类叫做circle,哎这个呢,让它做一个叫圆啊叫圆了。啊,圆这样一个类行,那他说呢,就是叫设计一个类叫circle计算圆的面积啊嗯,圆的面积公式还记得吧,哎,派二方对,那这里边就涉及到二二呢是。
01:01
圆的半径吧,哎,那这个半径你说是作为一个圆这个类的什么出现比较合适啊,是不是作为一个属性比较合适啊,哎,对于一个圆来讲,你想它这个大呀小呀,不就是依赖于它这个半径吗?哎,所以我们很自然的呢,给它生命成一个属性啊,那这时候属性呢,你要说我用int型接收,那就只能是整数,你要说我用一个double型接收啊,那就可以几点几啊,这都可以啊。呃,就是这块这个类型呢,没有严格的去要求啊,大家用int用打保都行,这个题目也没说,然后呢,这里边涉及到一个功能,就是叫呃,求圆的面积的一个方法。哎,这样的一个方法啊,面面试了面积行,那我们下边来写啊,那这呢,咱们说一开始大家把方法都声明成public的下一个问题返回值。
02:01
写返回值啊,还是不写啊,这个题目没有说,其实是吧,哎,这个呢,那就无所谓了,他说呢,呃,计算圆的面积并返回输出啊,那你就是返回值,他也没说,没说这时候其实在这个题目中都可以。都可以啊,那比如说我写上一会我们再写个没有的啊,我写上double了,下边呢,就是这个方法名,方法名的这个我这叫,比如说叫find area吧,Area就是面积的意思啊好,那这个位置叫行餐,那要不要写行餐?要写啊行,那我写一个,那double写写一个什么类型的。啊,什么类型的都行啊,啊,Double double起个名字吧,叫二吧,你这个变量是什么意思啊,这么多同学都异口同声说这是半径啊,哎,这,这就是这道题的一个坑啊,虽然这道题比较短,大家呢,基本上都舍到这块了啊,很多同学就是对,也有同学提了我这个半径还有没有必要去定义啊,完全没有。
03:12
上边这不已经有半径了吗?啊,我先写个正确的,一会我们说明这个错误的啊,行,这个呢,正常来讲是不该有的,然后在这里边的话呢,我们去求一下圆的面积并返回,那我就直接呢,呃,或者你先先先声明好也行啊艾瑞等于呃半径呢,你就呃面面积呢,3.14乘以啊四再乘以一个四,哎,这不就可以了吗?哎,然后接下来你把它return一下area,哎,这就搞定了,或者直接呢,这个里边这一行也不写了,直接我就return这个也行啊,这两个都可以,3.14的话呢,你要想说在在这个长一点,你可以直接调mass里边有个常量叫做mass点派,哎,它呢就是3.14。
04:02
这个啊更长啊,行,这这都是小事啊,这样的话呢,我们就把这个面积呢求出来了,而且返回了这个类呢,其实就设计成这样就可以了,这是一个正确的情况啊,然后呢,我们回到这块呢,来进行测试,写一个main方法,May方法是程序的入口,只有你写了may了,我点右键,这时候才能看到这个Java application,否则的话呢,这个你写个MAY1这都不是may,这就没有了。这个咱们说过了啊。行,那没方法进来,进来以后接着怎么写呢。嗯,接着这时候呢,咱们说了,你这是一个类,咱们现在想调用它的方法,是不是得先有对象呀,先有对象我们得去创建circle的对象,我叫cnu,一个circle,不断的去强化咱们说的那个落地实现这三步。啊,赵雷。造对象,调功能,调属性,调方法都可以啊,那此时我们如果要是去输出一下C1的嗯面积吧,叫find area,诶这个这个方式大家好像猛一下还接受不了是吧?慢点先c1.findarea,这不又返回了一个area嘛,我们拿一个变量接收一下double型的area,然后我直接输出一下这个area。
05:25
那这个时候是多少零点,对,这时候呢,是不是就是一个0.0啊。哎,因为我们3.14,你这个去乘的时候,我这个时候它是不是0.0.0啊,对的啊,诶所以这个结果呢,就是0.0啊,那我们在这个之前可以先通过C1调这个我们的radius,哎,我付一个,比如2.1付完以后你在去算,那这呢就正常的该怎么算就怎么算了。反正就是这样一个结果。行,那这道题呢,实际上写成这样也测试了,就算是完成了,这是一个比较标准的一个正确答案啊。
06:06
那么再说一种答案呢,就是这个呢,咱们现在是写了返回值了。这是方式一啊,这个题目呢,没有明确说,所以呢,你也可以写一个不要返回值的也行。哎,这块的话呢,是两个都可以的啊,那我就写个word,我叫find area,哎,那在这里边呢,你计算好这个面积了,计算好以后的话呢,因为这不需要返回了,那你就在里边写清楚,说面积为,哎,加上这个area,哎这样也可以啊,那你上面这块呢,你就别这样了,你看这时候因为咱们这个没有返回值量,你这还拿个去接收,这就接收不到了啊诶把这个呢就注释掉,这呢是对应咱们的方式一,哎那下边呢,对应了一个方式二。
07:00
哎,我呢直接C一点,我叫范,哎这个时候范德瑞不就是掉的他嘛。哎,执行。OK,哎,这就出来了,哎,就是这呢,两个方式都可以啊,下边这两个都行,然后下边呢,咱们说这个所谓的这个错误情况。哎,错误情况,错误情况呢,就刚才有同学这样写了,说public这个呢,呃,反不防为咱们说都可以啊find area,然后在这后边呢,又写了个double型的二,那这里边怎么写的我都能猜出来了啊呃,你3.14或者是派都可以啊,乘以一下这个二,再乘一下二。然后呢,接收为一个变量,哎,就是艾瑞,哎这呢,就是你要找的这个艾瑞是这样写的吧。错,你是不是也得这样错,有同学我不是这样写的,我这个位置写的是read,那你这个错的错的有点低端呀,就是你定义来这变量你里边还不用,那你删了不就完了,删了就成正确的了,是吧,反正不能删啊,嗯,你你这错你也这你也得写成二,你要写成这个radius了,那可能还更鄙视你了,错都错的不专业是吧,嗯,这呢,你你写了二了,肯定里边你要用了啊,不用就不用定义了,但是你这个时候呢,其实是有问题的,你比如说这个方法,这个方法你看咱们这个C这个对象已经有半径了,那你说你这个错误的一个调用哈。
08:38
我通过这个C1,咱们去调这个叫find调,你这个带参数这个啊,比如我传了一个3.4,那你想想你这时候得到的这个是我们C的这个面积吗?对,你看这是咱们C的半径,这是咱们求面积,你这呢,现在传了个3.4,这俩结果肯定不一样是吧?这个13多,这个36了,你你下边这个是不是拿3.4算的。
09:15
对,你3.4拿3.4去充当半径了,而我实际上这个半径呢,是在这儿呢啊对,那要是这样写的话呢,有的同学他就把这个给干掉了,就不定义这个属性了啊,那是错的呢,还是专业一点的是吧,你俩不能都有啊,哎,你要不把它干掉,但是呢,这时候你就得想了,把它干掉,其实设计上呢,稍微差一点意思啊,就是半径呢,作为一个属性其实更合适一些。这时咱们就得稍微谈谈这个怎么写更好的事儿了啊,还不是说呢,你那会就非常明确的说那是错的,哎,这个时候就看怎么更好一些的了啊,哎,更好的话呢,就是把这个半径呢当成一个属性啊,这要是有属性半径呢,这块呢就不要再加R了,哎,下来呢,大家体会一下,这是这个呃,错误的这个情况啊。
10:06
啊,这个一一对应,大家来看这个题就行啊行,那这个题目的话呢,我们就说到这儿了,那就说到这啊,那实际上呢,我都嗯不是特别想提这个叫static,但是我看有不止一个同学呢,这样出现了,强调一下这样的一个情况啊嗯,这个林桂群这个题啊,嗯,就是他这个正好错的呢,其实特别典型。啊,那就都拿他的这个来看一看啊,诶这个时候呢,是把这个诶测试类啊和这个circle呢写到一起了,写一起就写一起,这还不是主要问题啊,那这是一个circle没方法写到这儿了,然后呢,这是定义的这个area瑞啊这呢就没有定义那个属性啊,给它注释掉了是吧?给定义到这儿了啊这呢,咱们其实在说这个问题,关键呢,就是他这写完这个方法以后呢,这个方法呢,直接在我们这个main方法里边去调了。调的时候呢,提示说必须得static,然后呢,呃,然后一点那个提示一点,它就自动的给我们加上static了,诶倒是不报错了,但是这种方式注意哈,咱们还没有讲。
11:09
大家呢,先不要这样去处理,咱们现在的话呢,在main方法当中,你想调另外的一个方法都是非静态的,必须呢去造对象去调,先把这个过程先用熟了,强化了再说,所以这块这样不要这样去写啊,然后他呢就改了一个版本,哎,改成呢。不加static了,然后呢,造了一个对象去调的,哎,然后呢,我又说你这个属性不能这样写,然后他这块呢,又改成一个属性这样的了,这是不是就OK了。哎,这就是一个正确的一个情况。啊,那正常来讲这个测试呢,通常咱们呃,就是这样写也行是吧,但是一般呢,咱们是专门造一个类来表示什么结构,然后另外一个专门是来测试的,所以爱拆开啊,但是你要合一起呢,这个时候咱们只是做练习嘛,啊也无所谓啊,是这个意思啊。
12:01
啊,这我们得感谢一下这个林桂群是吧?行,这是我们说的这道问题。
我来说两句