00:00
好,那么这个equals呢,告一段落了,哎,我们把它呢收起来,接着来看另外一个我们在开发当中比较常用的一个方法,叫做to string啊,所以下面呢,我们来讲一讲这个叫哎,To string它的一个使用。好了,那关于它的使用的话呢,我们直接呢,就在这个代码里边呢,去做这个演示了啊,诶,那不妨呢,我这块呢,就写先这个代码咱们就直接来测试啊,一边测试呢一边说。关于这个user的话呢,我们写一个string型的一个name,写个in型的一个age。啊,没问题,好,接下来我们去提供这个构造器,先来一个空餐的。啊,再来一个代餐的。行,我那就先写成这样了。这个完了以后呢,我们在这个测试里边啊来看。我创建个user。假设在这块,我就写成这个叫汤姆了。才12岁啊好,那我通过这个先不用说着急打印了哈,我通过这个U1。哎,在我们这个user呢,没有去重写toth string的时候呢,因为你集成object了,所以你就有这个方法,所以咱就直接调to string了。
01:02
这个to string呢,它就是object里的了,返回的是一个string。所以呢,我们这块呢,想看下这个值,那你就自己主动的去打印。很清楚啊好来运行一下。诶出来了啊好,那出来以后的话呢,我们把这个结果呢,直接呢粘到这儿,哎,大家呢,可能会觉得有点似曾相识啊。哎,这不就是我们平时所谓的地址吗?以前呢,我们在这样操作的时候。哎,是不是打印的也是这样一个效果。啊,来走一下看看啊。诶,你看也是同样的啊,哎,那就说明呢,就是我们平时啊,其实已经大家接触过这个托斯润了。就是啊,原来的时候我们直接打印一下你这个引用啊,其实我们说呢,存储的是地址值,诶前面呢,还有它对应的类型,当我们这块调to string的时候呢,你发现呢,也是这个结果,其实呢,这块相当于调的就是to啊。
02:02
怎么来理解呢?就是你要看这源码了也能看啊,那就我按住CTRL键。点一下。就他吧。哎,他这块的话呢,怎么做的呢?哎,它它其实这块有个这个string的一个方法的调用哈,得到的这个字符串呢,其实就是我们要返回的那个字符串了。不是返回的,就是我们要打印的那个信息了啊,然后这个位置呢,X呢,你看我再点。哎,大家呢,你会发现呢,诶我们这个obj你看是不是在这掉了。诶,这是最核心的点啊,诶那么翻回去啊,就是这个呢,你写的是U1,其实呢,刚才我们点点点点进去的时候呢,它也掉two了,而我们这儿呢,相当于直接掉的to啊。说白了就是以前我们已经接触过这个方法了。啊,这样的一个场景。好来回过来啊,关于他的,呃,一个定义,诶,那么之所以打印的是这个信息,就是因为额不债当中这样声明的,哎,先把这个声明拿过来。
03:01
像这样。但一看这个声明呢,大家就很清晰了啊。Object当中这个方法呢,就是获取你当前这个对象啊,你所属的类,你的类名。哎,这呢,我们看到了类名就是前面这个吗。好,接着艾特,你当这个对象你存在哪儿呢?诶咱们说的叫地址值啊,这个值的话呢,其实你会发现呢,就是掉的我们这个哈希扣的这个方法,然后把它转换成了一个16进制。就是这样的。这就是平时咱们习惯性的就把它称为呢,叫利子值了。哎,用它呢来标识咱们当前这个对象啊。行啊这呢,就我们看到这个方法是这样来声明的啊,那么在开发中的这个场景呢,诶我们会发现啊说呢平时啊,我们在啊调用啊这个system.out点哎print line啊或者这个print这个方法啊。这个呢,去打印对象引用时。
04:01
啊,或者叫这个引用对象的这个变量时啊,引用变量时。其实就调用了。啊,第二呢,我们这个,呃,对象。啊的是吧,To string的这个方法。啊,这个呢,就是我们看到的其中的啊这个场景啊好,那这呢,就我们要说的这样个事儿了,那么具体的话呢,我们来看看相关的这个子类的这个情况,这个子类的话呢,我们就分成两种情况了,第一种呢叫自定义的。类啊,它是怎么着的,第二种的话呢,那就是我们这个像跟上面讲equals一样啊。哎,像这个啊是吧,这个fell啊,这个date呀。或。诶,我们说的这个叫哎包装类是吧,对于这些类来讲,它是什么样子的。OK,那首先看第一个啊,对于我们自定义的这个类来讲呢,我们如果没有重写啊,Object类的这个图形方法,我们发现呢,就是掉的这个。
05:03
啊,就是我们所谓的打印的就是地址值啊。好说一下啊,那自定义类啊,在没有重写。Object类的。哎,To string方法的情况下啊。情况下呢,诶默认呢。呃,相当于返回的啊,是当前。哎,对象的这个咱就叫做地址值了啊,实际上呢,就是你调的就是object中的这个方法了,好,那么像string file啊,Data包装类它们是什么样的呢?来咱们看一下啊。我这块呢,死钝。一啊new一个string,这呢,我们叫hello。哎,然后此时的话呢,我们一就我这样写就行了哈。它提升的不是就自动去调这个出水了吗。你要自己加上呢,你就是显示的调一下而已,这时候呢,我们去run,你发现它打印的不是地址值。哎,而是呢,你这个实体的这个内容是吧。啊,这个呢,我们也能想到,就是因为你重写了呗。
06:00
哎,再来一个啊,说来一个fair。这个呢,我们就是D盘下的啊,有一个ABC.t这个文件。好,这块呢,我们给大家倒一下包啊。诶,接下来我们去打印一下这个file,呃,你会发现呢,它打的呢,就是你这个文件的一个路径。哎,就是它啊,也不是你的地质值。嗯,还包括啊,比如我们来一个日期啊,叫date。哎,这就这个日期了啊,这个data呢,我们也给大家导一下包叭,如我们这个这个哪个都行,比如用第一个吧,啊叫U,这时我们去打印这个data的时候。他打的也不是地质制。哎,他打的话呢,哎,你一细看,就是咱们当前生成这个对象时候,对应的这个时间。啊年。呃,月是NOVEMBER11月嘛,25号周五,哎,这个时间点,现在是一个时间的一个标准啊,中央标准时间啊,这样的一个规则啊。啊这呢,就打印出来的,就是你当前这个时间了,所以呢,你看像这样的一些,呃,对象哈,它呢,调图存的时候呢,打印的跟我们想的不一样,就是因为它重写过了啊,所以这块啊,像这些结构哈。
07:12
啊或包装类等。啊等object此类。哎,都呢,哎这些得此类哈,他们。都哎重写了啊,Object这个类的图方法。啊,然后呢,在调用时。哎,再调用谁呢?就是这个土司string石啊。哎,再调用这个图存时呢,然后返回,哎,当前对象的实体内容。诶,你这个string的话,就是你的这个字串,这个呢就是你的地址,这是你这个时间啊,这个以后再说啊,诶就是这样的场景,好,那么这样完了以后呢,对我们开发当中的一个启示是什么呢。哎,其实主要呢,就是针对我们自定义类来讲的哈,哎,就是习惯上。
08:03
啊,开发中,呃,对于。啊,自定义的类啊。啊,在调用。哎,这个土司顿时。嗯,也希望。啊,显示。啊,显示啊。啊,显示其啊这个对象的实体内容。啊,而非。啊,咱们的这个地质值是吧。哎,那这时候呢。那就需要呢,是不是重写哎,Object类中的图方法了。哎,图这个方法啊,OK,所以结论呢,就是我们重写就完了啊,那么怎么重写啊,来回过来啊。呃,User呢,我要重启了,首先呢,你要考虑一下object,它的声明是长这样的,所以呢,你CTRLC1下回过来,你也这样去做。把这个生命呢,完全给他拿过来啊,这能叫一个重写了。
09:01
哎,或者的话呢,咱们也说过了啊,直接呢,你就to string是吧。哎,这样啊,找到这个方法A回车也行。好,怎么重写呢,哎,我呢就自己先手动的,咱们。实现一个啊。啊,实现这个。哎,吐。好习惯上的话呢,我们先会留一下它的这个类型啊,对于我们当前这个user类来讲,那就是user了啊。然后这块呢的是。嗯,它有俩属性,一个叫name,一个叫H,那我们就分别哈,说内呢等于多少。加上个内,然后逗号一下,说A呢等于多少,加上个A好,然后最后呢,分一下就行了。那一般呢,咱们就这样做啊。好,这个写完以后呢,我们再回到上面这个位置,哎,我们要是再去调这个to string的时候再run一下。这时候呢,就变成咱们自己重启的这个信息了,这是我一看这个对象,我就知道你里边这个内容是什么。哎,一般呢,以后我们都习惯性的哈,会这样去做。
10:04
哎,就这么着是吧。腿了啊。好,那这呢是咱们这个叫手动生成的了啊,你也可以呢,不用这个手动生成的,把它注释掉,哎,咱们首先呢,诶图死针是吧,诶过来哟。不用在这儿了是吧,直接删掉啊,然后呢,也是out加insert。这个位置你看有个string。再点一下是吧。哎,说你这里边呢,你打印的话,你想输出什么呀?哎,你看这俩呢,都默认的选中了,就是name和age呢,我们都想显示一下,好,那就OK一下,诶就完事了。啊,这个你细看一下的话呢,其实跟我们这个写的是不是差不多呀。啊,因为我就是先照着它这个呢,先抄了抄是吧,嗯,小区别呢,就是它这个位置呢,针对于这个值的话呢,你看它加了一个单引号是吧。就是打印的结果你就知道了啊。那就这哎这个字符串啊,它为了能够表明你这个字符串,它这块该整了个这个单引号啊。所以字符串应该双引号啊,它这个就是一个规则,它就用单引号给包了一下,这个就不用去细究了啊。
11:05
好,他呢就这样写的,跟我们这个写的格式呢差不太多啊,这个呢就是跟具体的软件有关系,你像在eclips当中呢,它这用的是一个中括号啊。啊,也没有这个所谓的这个单引号包一下,所以这呢,就是个性化自己定制一下诶。总之的话呢,就是你把这个属性呢,能够看得到就行啊。完了,这就是我们讲的这个to string啊,比较简单啊,来,我们看下这个课后的练习题。啊,练习题呢,是这样的啊。呃,说呢,定义两个类啊,一个呢叫geometric object,一个呢是circle,然后呢写一个测试这样,诶类的关系图啊,一看还挺复杂。啊,这里边儿呢,除了储存之外呢,把前面的我们E4啊,包括呢,构造器啊,相应的一些内容呢,又考察了一下这个题里边啊有一些小细节需要我们关注一下,来咱们看一看啊。首先创建一个几何图形。看不见了。
12:02
My trick是吧?Object。OK啊好,按照他这个要求咱们去写啊,首先protected。Color啊。Protect you。Protect。Double的。啊好,接着的话呢,提供这个构造器啊out加insert。先是来一个空参的啊,空参的里边人家这块写了啊,刚才你把这个color呢,初始化为wait white白色的啊,Wait呢属性呢是1.0,那其实呢,在里边就把这个值呢给附上了啊。White。呃,Weight权重是1.0A,这样写好啊。嗯,这就OK啦,然后下边呢,你显示的再写一个带参数的这个构造器。哎,把这两个属性呢,都做一个初始化啊。诶,可以了,然后盖的方法。
13:01
要这个是吧,来改善方法啊。好,那目前呢,这块呢,也没说别的,那咱们就先写成这样了。他也没说投诉人是吧。好,接着啊。嗯,下边的话啊,我们看这个啊。啊,在这里边啊,这呢是它的一个子类,叫做S狗。过来了啊,哎,让他呢,首先呢,去继承我们的这个metric object。好,接着的话呢,我们这儿多了一个属性啊,Private double类型的啊readers。好,下边我们去提供这个构造器啊,构造器呢有三个,第一个空餐的。这个。来回移啊,放这儿吧。呃,Alt加insert啊找构造器,呃,这个先来一个空A,那这块的话呢,它先让我指定的,你想调负类的哪一个啊。因为负类这块有两个构造器了,我们在子类这个构造器里边呢,可以去掉负类的了,你要是呃选这个块的话呢,其实就相当于是不掉了,因为我这再写第一个啊,你这块不掉其实也不可能啊,就是你必须得从这俩里边选一个呗。
14:11
你有没有重载的过道期是吧,这块我们空参的话呢,我也调负类的空参的,所以你就先选个这个,然后再OK一下。然后呢,当前这块呢,我们先整个空餐的啊。不用这个radius啊,然后OK一下就长这样。啊,这样啊。好,然后呢,这个呢,接下来看一下,涉及到了我们相关的这个属性也得做初始化color wait和readers,好,我这块就去写了啊。Color。啊。这个。1.0。这个radius,哎,1.0A我就写完了,好,这呢是第一个构造器,然后第二个。诶,构造器啊,这些构造器的话呢,我们调哪个呢?呃,因为它里边呢,也涉及到了这几个是直接就写死了啊,所以呢,我们也调负类的空参的,然后自己这块呢,把这个半径呢给初始化一下,所以这块吸引了大家,哎,接触接触啊好,这里边呢,半径呢就用参数了,然后除此之外的另外两个属性呢,哎,我就。
15:13
我还这样了啊?哎,这不这也提这个事儿了。再接着的话呢,诶,三个属性都给初始化一下,扩造器我们就选福雷动带参的这个了啊,OK一下自己这个也选OK,哎,这不就这样吗。哎,在负类里边把这两个属性呢初始化啊。好,这呢是构造器的问题,接下来针对于半径的get和set方法啊,这个比较简单啊,直接选一下啊OK。搞定再接着。哎,下边呢,有说啊,计算圆的面积啊,这个也不复杂。嗯,Double类型的。Find area啊,这样。好,咱们就直接了啊,3.14。哎,乘以啊,Readers。哎,再乘以啊readus诶,这就搞定了啊,这是求面积。
16:06
这就行啊好,接下来我们看下边这两个方法,这是我们今天要练的这个主要的点啊,这个叫equals啊,说呢重写这equals方法啊,然后比较两个圆的半径是否相等,如果要相等,返回处。诶,所以这块呢,这个equals呢,它只考虑半径啊,跟呃,你这个颜色呀,或者权重啊没关系,半径一样,他就认为是equals的好。哎,这个呢,我们叫诶重写啊E口词是吧,这个。嗯,那这个方法的话呢,大家你自动生成也行,或者你手写啊,咱们再手写一次。这个叫equals。这个是吧。哎,这样啊好,那么这个方法的话呢,我们比较的是半径啊。嗯,比较半径,嗯,也先来个衣服吧,哎,这次是跟obj一样的,哎,瑞成一个出。
17:02
好,再来一个衣服啊,Obj instance of是一个circle。好,你要是个圆,首先想转。Circle。Obg好,量完以后的话呢,我们直比半径哈,当前的这个readers。这是一个double类型了,所以我就用等等了啊,C的一个readers。哎,知笔半径嘛,哎。我们就完事了。然后最后这块我们再re一个for啊。这个没问题吧。体会一下啊好,那这呢,我们写完这个叫equals了,然后下边的话呢,它有这个to string呢,也需要呢去诶我们实现一下啊。重写一下to。啊,这个呢,嗯,你重写的话呢,输出圆的半径,它只让输出半径啊。呃,那个color呀,Wait啊,也不输出了,那咱就不管了啊。哎,这个叫to,哎,在这里边我们只是要呢去return一下啊,这个叫哎,Circle。
18:02
这样一个中号是吧,Radius。哎,加上我们这个a readus,哎,最后呢,我们把它封一下就行啊,这个呢,你用中括号啊,打括号啊,其实都行啊。好,这个我就完事了。这就可以了啊好,那么关于这个呢,呃,就完事了,下边这呢,你看一下啊说呢,创建啊两个circle的对象啊判断,那我们就按照这个要求来了。哎,这块我们去新建一个啊叫circle啊,它的这个测试。好,放在这儿啊,转过来。这样啊。好,没方法。正在创建两个SQL的对象,判断其颜色是否相等。嗯,先创建好。呃,这里边呢,他也没有提到说我们应该用哪个构造器,这个大家就自由的去选择就行了哈,诶假如这一块的话呢,你看我用的就属于空餐的了,那就用的这个了。
19:03
啊,你要想用下边这个,比如我就写个2.3啊,这用的就是第二个。好就用它啊,诶就是这块大家呢,有时候也经常反馈,就是说呢,写这个代码的时候呢,这块又掉,掉到这块还得看前面的,刚写完前面这个类呢,后边这块都忘了写了啥了。这个是有可能的哈。诶,随着大家呢,这个代码呢,你不断的去写,呃,其实呢,像这些类里边基本上该有哪些功能呢,后边呢,大概也心里有数了就。啊,比如说像我们写那个项目的时候呢,诶,我们不是有一个叫customer list。对啊,哎,只要呢,一提到这customer list呢,里边呢是操作数组的,其实呢,你就能够想到就是增删改查。啊,这样的一些方法,所以这块你可能记不清具体这个方法名叫什么了,但是呢,你在调查的时候呢,其实你就知道里边是有这样的方法的。啊,随着大家以后呢,写的代码越来越多,相关的一些什么样的类,里边大概会有哪些方法,其实心里边也能有数了,所以你在调的时候呢,其实也就很能清楚了啊。好,这块我们再回过来看一下,我们这个里边的这个。
20:04
在这儿呢啊。好,这个构造器的话呢,你记一下你写过什么样的构造器啊。实在不行的话,你就把这个呢调出来,然后我们这么着一下是吧,就一边看一边写了啊好,然后接着的话,我们再来一个circle。哎,这个叫C2啊,你有一个circle。好,这呢,咱们比如说选第三个了,这个我们来一个叫red。诶,红色的啊,权重2.0。然后呢,这个半径啊,3.4。这我们就造了一个啊好,这里边儿这个需求的话说呢,先判断一下它俩颜色是不是相等。啊,这个时候的话呢,你就别想着用ES了啊。因为E里边你是比的半径啊。所以呢,你就自己来吧,啊,比如说C一点,哎,我们获取一下它的这个。颜色是吧。哎,这个呢,你再去调E4啊,那C2点你再去改它的这个颜色啊这么着。哎,这样子啊,说颜色。
21:00
哎,是否相等是吧。这块我们就直接简单一点啊,就后边带一个布尔型的值了。哎,就这样来进行判断,来run一下。嗯,上边这个画呢,它是一个白色的。哎,我们这个位置啊,掉的这个构造器呢,是它啊,这是白色的,哎,下边这个是个红色的,它就是false。哎,这样啊,好,接着正在利用equals呢,判断一下它们这个半径是不是相等,OK,关于半径这块呢,我们就直接呢C一点,我调ES,把C2呢往这一放就行了。这个呢,因为它这个equals里边啊,这不就左边这呢,比的其实就是半径啊。哎,所以呢,这个A半径。哎,是否还相等是吧。这块我们连接一下就行了啊好,这个呢就搞定了。嗯,下边看还有吗?哎,掉兔子输出它的半径来,我们再看一下。哎,直接呢,我们就C1啊,我就这样写了啊,它跟我们这样的写法是一样的。
22:00
可以啊,好,来,我们去run一下。诶,这个图词率的话呢,它要求的重写规则里边只输出半径,所以我们就只写半径了,诶这就搞定。行没问题啊好,那么这道题呢,其实我们就做完了啊,做完以后呢,有个小细节呢,想给大家呢,去说一下。啊,你看看我要说哪啊在这块。我们在这个思库里边儿的话呢,我把这个都写了。嗯,这块的话呢,也写了。啊,那你看啊,我在这个位置呢,调的是这个构造器哈,这个构造器你会发现呢,我要是把这两个。给注释掉的情况下。哎,注入调的这个情况下呢,你看哈,我们这时候比较这个颜色的话呢,这个会不会说它这个值呢,是一个no哈。如果要是闹的话呢,我们get,这就是个闹,闹掉它是不是就控制人了?哎,事实上呢,你发现它没有是吧。啊,没有啊,没有控制针哈,换句话说的话,我们这个c1.getcolor,你说这个是什么颜色。
23:04
我注释了啊。是白色吗?为什么?哎。对对,这块就是我们要强调的点啊,诶你会发现呢,我们这时候呢,其实叫super空,而super这块呢,是不是这块已经复过值了。所以说呢,我们在子类这块呢,其实完全就不用辅是吧,包括这个是不是也是。诶这个呢,也是虚空,你虚破空,你这个负雷这块呢,这不也照样都付过了吗。哎,所以这有个小细节啊,写的时候呢,就没有必要重复的再去写了。OK啊。好,那么关于这道题呢,咱们就诶告一段落啊,那进而的话呢,整个我们关于object呢,其实也就收尾了,诶大家呢,需要知道的话呢,就是关于equals啊,还有这个to string,诶开发的时候呢,我们什么时候会去用,用的时候呢,你记着给它重写一下。就可以了啊。
我来说两句