00:00
好,看一下我们这个讲完decos和to string以后,关于这个的课后练习题,这呢又提到这个叫geometric object叫几何形状,这是一个副类,然后呢,提供了属性和构造器盖算方法,下边呢,关于这个circle是它的一个此类了,属性构造器还有方法这块呢,有相应的一些说明,再接着的话呢,去判列判断两个circle呢颜色是否相等啊,又提到了一个叫E口的方法的一个情况,行,那这块的话呢,我们就来写一下这样的一个类,首先呢来完成它的副类啊,这个metric object ctrl c这块的话呢,我们再去新建一个包。哎,在这个下面呢,我们先去新建一个类,就是我们这个几何图形这个类,首先呢,来完成它这里边的这个相关属性的一个这个情况这块,我们把它放到这边这个呢,拿到这边这样来写,首先这个protected的这样的一个属性两个。
01:00
四针形的color。Double类型的一个weight行,接着的话呢,去提供这个构造器,Out shift s,接着提供一个叫空三的构造器,写好了,写好以后呢,这块提到了说空三的构造器当中需要呢,你去初始化这个color color呢是白色外,嗯,Weight呢权重是1.0,这块我们来处理一下,那就是这次点color等于white。嗯,Z4.weight权重是一个1.0好搞定,那么接下来呢,去提供这个代餐的这个构造期al shift s代餐的OK行完事,接着提供这两个属性的盖方法,Auto shift s选中OK。没有了,这呢,就是我们说的这个类就完成了,那接下来接下来的话呢,我们看下这个子类叫circle,在这个下边我们去新建一个plus circle,然后呢,直接我们在这个位置呢,就指明它的类这个metric object是我们这个练习。
02:13
咱们写的练习三吧,这里的别选错了,因为咱这呢有好几个geometric object在这里边的话呢,我们先去定名它定义它自有的自己的这个私有属性。Readus,接下来呢,提供构造器,首先空餐的alt shift s先什么都不要,正常是一个出来了,这个里边提到了,说初始化我们color属性也是一个white weight呢是一个1.0 readus呢是一个1.0,哎,自己呢这个属性叫readus,这个我们比较好说啊,直接呢就复制为一个1.0了,那么关于另外两个属性呢,也得附上。另外两个属性呢,由于我们负类当中剩余的是protected的,所以我们在这呢,实际上可以直接掉,就直接呢,我们第二个color等于。
03:07
说等一个white。然后呢,Wait等于1.0行,那这块有没有问题啊,有没有同学有一点想法。有有想法的吧,或者有想说点什么事了吧,嗯,就是该该说点什么呢,就是这时候呢,这样写有点冗余哈,咱们改一改,我直接呢把这个删掉行不行可以,因为你直接修破的时候呢,是不是已经做初始化了,哎,就是别忽略了我们负类里边这个功能负类构造器,所以这个呢其实不用写了,接下来的话呢,提供一个带参数的这个构造器,Al shift s生成一个带radius的行,这个radius的话呢,也是提到了说把color和weight呢,也是white和1.0,然后半径呢,你这样呢去通过行三去复,这呢也是直接就不用写了,都写好了行,这个呢,别忘了你要这玩意写上的话呢,相当于又重新又复了一遍,还跟原来一样,就没意思了。再下边呢,提供了一个带这个多个参数的这构造器了,哎,我们往下复制一份,然后呢,把后边的这两个。
04:22
这个string类型的,这个是一个color,这个double型的一个wait看不着了,行,那super的话呢,你就别调这个空仓了,卡了一下wait一下,正好呢,我们福雷中有这样的一个构造器搞定。行,这呢就是我们写的这个三个构造器的问题,再接下来的话呢,提供我们radius的get和set方法,Al shift s点一下OK完成,在下边呢就求面积,求面积这个我们几何图形里边倒没有说。
05:00
没有说求面积的这个事,那这块呢,我们先把这个方法呢给大家补充上,CTRLC求面积,这里边我们直接呢就做一个return,就3.14了,乘以readdius,再乘以一个radius行,这呢就求圆的面积。好搞定,在下面的话呢,提到一个叫E的方法和to string方法,那首先呢,Equal方法呢,我们需要做一个重写。离的方法,那么我们当前这个圆的话呢,是定义了一个属性。保存一下,然后呢,我们又继承了父类当中的两个属性,两个属性那现在呢,想比较一下说两个圆是否ES,这个你得看题面要求了,就是我们怎么认为说是相等的,咱们说了叫实体内容,但是有的时候一些属性呢,我们并不关心,那你就不用让他去参与了,那这个以后怎么写,他在这里说明声明的说呢,重写后的方法比较两个圆的半径是否相等,所以我们只关心半径就可以了,那这块呢,我们就这样来写,那么我们重写的话呢,大家就考虑半径就OK了。
06:15
半径这个咱们又相当于自己来手写的啊,说if,如果这次等等于obj,如果呢,哎,我们当前对象和行三这个对象呢,引用地址一样,那咱俩呢,肯定是一个错误,否则就直接在这儿写了,否则的话呢,我们判断一下你这个OBD呢,是否是我们当前这个叫circle的一个实例,如果你要是个实例呢,咱们还有的一笔,如果实例都不是直接return false,如果你要是一个实例先强转一下,这个过程呢,还是需要大家去熟悉的,虽然说咱们开发中不用咱们去熟悉了,但是这里边这个逻辑对大家呢是有意义的,去理解这里边这个每一个步骤,判断它是否是我们circleq的一个实例,实例就是对象的意思,那如果你要是个对象呢,做一个强转,接下来比较一下当前对象的半径。是否和。
07:15
我们这个行参这个对象的半径是相等的,因为呢是基本数据型,我们就用等等。这个是不是就写完了,对,就这样来搞定,那接下来呢,提供一个twoth string,说呢你去输出一下圆的半径,那我们这块呢,就来一个twoth string,这个twoth string,你看out shift s它比较简单了,咱就直接掉了,这时候呢,咱们关心的呢,只是radius负类中的那个我们继承过来的这个属性,它俩呢不关心,所以你也不用打勾了,就这么着,OK一下。只是输出它的半径,哎,这样就写就行,这个比较简单一些,我就直接来调了,写完以后下面呢,写一个测试类,创建两个色后对象判断颜色啊,还判断颜色是否相等的,我们造一个。
08:03
这块呢,我们写一个这个class叫circle,它的一个测试,那来一个没方法造两个circle。CIRCLEQ1等于new一个al斜杠,我们呢,先用一下这个,我写一个2.3,那么它的这个颜色和权重呢,都是默认值,再来一个CIRCLE2。Alt斜杠我们呢,再选一个这个参数比较多的半径呢,我们也先写个2.3,颜色呢写成一个暂时也先写成一个Y,哎,权重我写个2.0。这样好,这里边呢,让你去比较一下这个颜色,还有这个这个半径啊等等,我们直接呢就粘过来看一下。这个判断两个对象的颜色是否相等,那我们这呢就直接来写了。
09:05
说颜色是否相等,那我们就直接到这里来调了。这个叫CIRCLEQ1。色扣一第二我们判断颜色,颜色呢是color,咱们呢这块呢就调一下它的get color颜色是否相相同,这个呢,你说用什么符号啊。是不是用ES啊,用ES,然后比较一下我们这个CIRCLE2它的一个color。诶这样子来写,行,这个能看懂吧,对,就是比较一下这两个颜色是不是相等的,我们一定要用这个迪cos,就只要是引用数据类型,我们想比较的时候呢,通常都爱比内容啊。而不是比这个引用地址是不是一样了,引用地址再用等等,比内容的话一定是equals啊,没有重写的,你就需要重写一下,此时呢,我们这都是这个white,所以呢,它自然而然呢就是个处,那这个外的话呢,我这样写它也是一样的,这呢相当于是我们给它拗了个对象,不管你怎么写,我比的呢都是内容,所以呢这都是一个处,接下来利用equals呢,判断它们的半径是否相等。
10:25
半径是否相等,这个呢,我们就直接呢就是circle,这个呢,就用不着咱们自己再去get它这个嗯半径,然后看是不是相等了,因为咱们直接呢,都已经是不是写这个E的方法了,这个方法里边比的就是它们的这个半径,所以直接呢,我就把两个对象比一下啊,对象里边比的呢,就是它们的这个半径。嗯,好执行出啊,因为这呢都是2.3,这改成个3.3保存。
11:01
这,那就是一个false。哎,就这个情况,然后下边呢说去调to string,输出这个半径值,这个呢就比较简单了,直接呢,我们就调一下你这个,诶CIRCLEQ1或者是CIRCLEQ2,哎都可以,哎,那么我这样写的跟这个加上一个two s都可以一样,诶默认呢掉的也是two s了,那么我们执行此时呢,输出的不再是地址值,而是我们重写以后的错词方法,输出了各自的变量啊这个半径行,那这道题目的话呢,就这样来写就行。哎,就这样来做,这个难点的话呢,其实还是集中在这个equals方法这儿,然后初学方法呢比较简单,诶大家下来呢,有的同学对EQUAL4可能还不太熟,其实这块呢,没有想的那么难啊,没有想的那么难,这个整体上呢,你先把控一下E4,就是从面试题的角度呢,会去答这个问题,至于说这个ES重写的话呢,开发当中咱们都是直接掉了啊,那自己手写的,大家也最起码你这个逻辑呢得能够捋的清楚,行,这呢就是我们这道问题。
我来说两句