00:00
来咱们再看一下这个第三道问题,这个第三道问题呢,其实还是一个技能性的一个基本的考察的问题,那我们看一下这里边这个图示,首先呢,这里提到一个叫circle类,就是圆啊,这样个类里边呢,有关于它的属性构造器方法,这个咱们写起来的话呢,应该难度不大,然后接下来呢,定义了一个类呢,叫做cylinder啊,Cylinder叫圆柱这样的一个结构,那在这个圆的基础上呢,它对这个圆进行了一个拓展,叫延展,原来是一个相当于二维的图形,然后呢,加了一个属性就变成个三维的了,加了一个叫double型的lengths,就相当于这个圆,然后它有了一个高度了,成这个意思了,那高度完以后呢,这块就出来一个叫圆哟,画点过了啊,这样出来一个叫圆柱啊,这有点丑哈,这个圆柱这样个结构了,就然后呢,我们可以去创建这个圆柱的这个对象,然后还有get set方法,关于这个高的,然后还有一个求体积。
01:00
一因为是个三维的了,就可以求体积了,行这样的一个基本问题,嗯,难度呢应该也不大,哎大家呢,通过这个呢,再去体会一下,咱们创建这个子类对象以后呢,它可以调用负类当中的这些功能,前提呢是这个功能呢,你这个封装性的层面呢,得能够对它是开放的啊,权限得够我们就可以调,权限不够的话呢,调不了,但是也有再去体会我们这个集成性,好那咱们还是这个一块来写一下,首先呢,定义这个circle这块的话,我再重新再去写一个这个包。新建一个类circle,这里呢提到它有一个私有的,就是一个短横线私有的double的radius盖塞的方法构造器,构造器中呢,对这个radius呢进行初始化,值为一,然后find area,求面积返回值为double行,那我们就这个来写一下private double类型的radius半径。
02:02
然后接着呢提供这个构造器,构造器呢提到是一个这个无参的,但是呢,需要呢,你把这个radius呢制成是1.0,就每次呢,当我们造对象的时候呢,半径呢都是1.0,那其实呢就是你给它里边写一个值行,接着呢是关于属性呢get和set方法,这个al shift s,我还是直接呢就生成了,那接着呢一个求面积的一个方法。行public这个面积的话呢,是一个double,我们就用这个double fund的area参数不要有return,这个呢,你可以写3.14也可以呢,用咱们mass的这个派这样一个属性,然后再去乘以这个radius,再乘以radius,好这样话呢,我们就能够返回圆的面积了,这说这里边的话呢,像这个radius这个位置,这次点加不加都可以,因为你这不涉及到跟这个其他的这个形态冲突的问题了啊,像这块呢,就必须要加了。
03:12
就它必须要加行,那这呢是咱们说的关于这个叫circle这个类的一个创建就完成了,然后接下来关于这个叫cylinder圆柱。它它的话呢,我们首先让他去继承于。咱们的叫circleq行,集成以后呢,它就有它的一些相关的功能了,那么在这个那这个获取circleq的功能基础之上呢,它自己又额外的定义了double型的一个lengths,这个叫高,接着呢,我们也得提供这个构造器,将我们这个高呢,默认值也定为一啊,这写的一,你写负一也行,就是自动类型转换了,就这呢我们public。
04:01
Cylinder。这个LS等于一写也行,1.0也OK都行行,这个前面呢也省略了这点了,那接着呢,我们去提供这个盖塞的方法,Auto shift s,我也是直接呢来调一下,哎,搞定,那他提到了一个新的方法,就是求它的体积,Find叫volume这样的一个求体积的。返回圆柱的体积,这样public double类型的find volume这个参数呢,是不是也是不要啊,对就不要了,那么求这个体积的话呢,这块没有明确说明,这呢就作为一个常识出现了,这圆柱的体积得会求咋求啊,底面积乘以高对吧?嗯,底面积那首先我们看看怎么写啊。你要完整写就是ma点派底面积,就是也是先派R方,这个二的话呢,没有在自己这定义是不是在负类里定义的,那这时候怎么调啊,对,你要直接呢去写这个readus呢,权限的影响拿不到,不是没有我我们只能是去get一下它的radius了,然后再乘以get一个radius,这是底面积了,再乘以我们这个lengths,你要是看着这个属性不好看,你都统一一下,那就都get一下得了,对,Get lengths就在这里边呢,你用get lengths或用这个直接写lengths都可以,只要底面积乘以高就可以了。那有的同学可能会发现呢,我们这个派二方实际上呢,直接就是你负类中那个范的艾瑞尔对吧?所以呢,有同学可能会这样写,就是我直接呢return一下,因为呢,负类这个方法是不是也直接继承过来了,我直接写的叫find area。
05:58
再乘以get一个length可以吧,可以的,没问题,因为这个呢,操作其实就是它。
06:08
好这个呢,我们就搞定,这那就没有别的了,我们直接呢来做一个测试。做一个main方法,这个测试的话呢,主要咱们就来测一下这个子类对象了,因为我们想体现这个继承性的特点了,父类这块呢,你要是你有so对象,这其实跟继承性没啥关系了,也没练到这个关于继承性的一些内容,主要呢,我们去new此类对象来体现,那我就去new一个slender行造好了,造好以后我们可以通过这个S的方法去设置底面的半径,比如来个2.1,设置它的一个LAS高3.4,然后我们直接CY点,可以去find的它的volume,先先算这个啊volume这是就它的这个体积,这我们可以打印一下,说圆柱的体积为。
07:15
哎,这就是它的体积了,然后呢,我们也可以呢,发现掉这个负类中生命的find area,但这个的话呢,你得知道它其实得到的是我们的是不是你这个圆柱的底面圆的一个面积啊对。底面圆的一个面积,诶,加上我们这个叫area,行这就可以了。这就我已保存保错了,这个你记着点一下这个啊,有的同学呢,可能也会出现这样的情况,这个呢,就是光把你当前这个类保存了,其他的这个类呢,没有给你保存点一下这就好了,然后呢再去做一个执行,诶这就出来了,因为咱们用的是ma点派,所以这个呢就比较长一些。
08:03
行,这呢,就是咱们关于这个要继承性的一个练习啊,一个练习,这叫圆柱这个情况。
我来说两句