00:00
那么我们把这个object这个类呢,带着大家呢熟悉了一下,那么最终呢,我们归结为就是谈两个比较主要的这个方法,一个呢叫做ECO的方法,一个呢叫做图方法啊整个下午我们这内容呢,相对来讲比较轻松一些,就是讲完这个这以后呢,我们再讲一下这个包装类的一个使用啊内容的话呢,就是比较好理解一些了,首先呢,我们来看下这个叫E的方法,从这API的角度来看呢,这个ES在这里边写着,就是呢,来比较一下我们两个对象呢是否是相等的。啊,就没有了,这个我们其实呢,在开发当中,或者我们前面呢,也用过这个ES,就是在string的时候,就最初呢,用的时候是用那个高富帅这道题,流程控制的时候呢,说这个用户呢,输入的这个帅是否是是当时咱们用过一下这个equals啊,当然当时的那个equals呢,还不是说直接用的,它是这个死对呢,它自己重写过了,是重写以后的那equal词,当然我们也能够看到,重写的话呢,只是把这个方法题改了,这个方法它本身的作用不会变的啊也是呢,比较两个对象呢是否相等这样的事情。
01:01
好,那么比较两个对象是否相等,我们讲这个ES之前呢,先呢带着大家呢把这个等等呢回顾一下,因为因为这儿呢涉及到一个比较高频的一道面试题,这道面试题呢,也要大家呢都必须要会的,就是等等和ecos到底有什么区别,那现在呢,咱们先带着大家呢来回顾一下这个叫等等的一个使用,这呢我们也是写到咱们这个代码当中,诶新建一个,这呢我就先写成叫关于ecos的一个测试的,在上面呢,我们去写这样的一个注释,那通过这个面试题,我们把这个ES怎么使用呢给大家说清楚,这里边这个面试题就是等等和ES这是一个方法了,它们两个的一个区别,那首先呢,我们先来回顾一下。这个等等的使用。这个回顾它的使用其实呢,就相当于你这个答这个比试题的时候呢,该怎么去说这个事情,首先呢,我们知道这个等等呢,它是一个运算符,我们这个equals呢,它是一个方法,那么这个运算符呢,可以使用在哪些变量当中呢?哎,我们提到了说这个可以使用在基本数据类型变量和引用数据类型变量这个当中。
02:28
引用数据类型变量中,那么使用在它们当中表示的意思呢,就是我们说的叫等等,所谓的泛泛的数呢,也叫相等不相等的一回事了,那么使用在基本数据类型变量的时候呢,我们这个等等是不是就是比较的这个数值是否是相等的呀?对这个事呢,就很清楚了,我们来测试一下,比如说我现在呢,写一个in特形的I,这个呢是十,写一个因特形的阶呢,也是十,我们这时候呢,去比较一下I是否都等于阶。这个所有人都应该清楚的,是个出对吧,这测试的话呢,都。
03:05
都都有点懒得测了是吧,肯定是个处了,然后呢,如果我这时候呢,我写一个double型的一个D,写一个10.0,那这时候问如果我要是比较一下I或者接跟D比怎么办呀。这时候呢,是还是呢。首先明确的点就是这时候呢,没有报错。我们讲过就是基本数据类型和营,呃基本类型呢,像这个in的型,这是一个double型,它们之间呢,其实会存在着类型提升这回事,嗯,你要有这个类型提升,提升这回事的话呢,这个in特型呢,是不是它就相当于提升为一个10.0啊,那其实这时候结果来看呢,也是一个处,那也就是说呢,我们基本数据类型的时候呢,他们两个能够去比,没有说非得他俩的类型呢是一样的。咱们当时讲这个自动类型提升呢,当然是拿这个加号来说的,说这个呃,一个int呢,加上一个double的结果是个double的,咱们只是拿这个加号来讲的,但实际上呢,它适用于我们使用的这些其他的运算符,也就是呢,这个也是一个处,也是一个处,那你说我要是有一个布尔类型B,这是一个处,我这个布尔型呢,能和我们这个in型的比较吗?
04:26
不可以的,咱们不是讲过说基本数运型在这个运算的时候呢,是不是就不跟这个波尔型玩啊,对他们这个呢,这个编译它就报错了,这个除了这个普尔型之外呢,其他的是不是都可以啊,那现在你看啊,我这个叉型的这个我写一个叫65,我呢这个啊写60,先写个十吧,我这时候呢,比较一下I和C。首先,编译不报错。因为咱们讲基本数据类型运算的时候呢,说不跟波尔玩,但是跟这个其他的都可以玩,叉型呢是可以参与运算的,首先不报错,那其次相等吗。
05:07
不相等还是相等?为啥就不相等了,相等啊,我们这时候这个差型的,我这写了个十,咱们差的话呢,说这不是对应的有个字符,比如说这个大A,大A咱们对应这边是不是65啊,哎,然后这个小A97吧,我这写了个十,这个十是放左边放右边,肯定是放右边了,你要放左边这个带单引号的话呢,这个写了了成了,所以肯定是在右边了,这个十呢,这不就是竖十吗?你比如我这个我一上一个ii等一个一,然后这一呢,加上AA不就是当流入五算的,我现在呢,这个是我就写了个十,它不就是相当于真的那个十吗。没问题啊,这个就别犹豫了,这同学说,哎呀,这个还不会,要不重新再来一遍吧,用不着哈,没见过而已是吧?嗯,那接着的话呢,比如我这写个C1,这写一个大A,然后呢,我写个叉型的一个C2等于一个呃,65A,这两个呢,C1相等于C2,首先没问题,其次出还是FALSE3出吗?上面这个清楚以后,下边就也清楚了,这个A的话呢,它对应对应的二次码就是65,这个呢,就是你右边这个65,所以呢,这还是个处没问题。
06:28
行,那这块呢,像float型啊,跟这个in特型比啊,Float跟double比啊,它就不说了,这里边呢,只是跟这个布尔型呢不行,它呢是比较例外的,除此之外呢,剩下这七种都可以用这个等等符号呢去比较,那么到底是true还是false呢?跟类型首先没关系了,不同类型之间呢也可以比,主要呢就是看它们真实存储的这个值呢,是否是相等的。哎,是否相等的,这跟咱们前面讲的内容都是一体的啊,这不是什么新的内容了,那在这呢,我们写一下,首先呢,先明确呢,是可以使用在基本数据类型变量和营数据类类型变量之之间的啊,然后呢说如果,哎如果呢比较的是基本数据类型变量。
07:17
哎,如果是它的话呢,我们就是比较两个这个变量,这个保存的这个数据是否相等,就是这样的一个意思,这呢,这个不一定这个类型要相同,就是我们所说的有类自动类型提升这回事儿啊,不一定类型的非得要一样的啊,像这个例子就是啊下边这个都是好,这是说的它,那如果比较的是引用数据类型变量,那么这个时候呢,大家想比较的是什么呀?对,比较两个对象的地址值是否呢相同是否相同,地址值是否相同,那这呢举例子呢,也很好举了这个,嗯,在这里边,我这E库写到这儿了,那我们自己呢,去新建一个,举个例子,我这呢自己造了一个叫卡。
08:17
Customer呢,我们这块呢,去简单的来说明一下它的这个属性,比如说string类型的name private型的age al shift s,我们呢,把这个类呢,给它稍微的充实一下啊,这个盖塞方法构造器,构造器呢提供一个空餐的,提供一个代餐的。行,暂时的话呢,我们就先写成这样了,然后回过来我们在这个代码层面呢,我现在呢,去new customer c。这呢,我们比如说这个叫to,然后这个时候呢,来一个叫21岁C呢,上面有这个重复了,我叫cost。
09:04
行,然后呢,我再造一个cost,这个cost呢,也是汤姆也是21岁,问这个时候呢,我们去比较一下cost一等等于COST2是出还是false。有有说认为是出的不啊,一看诶汤姆21岁,这不都是同一个年龄,同一个人名吗?这时候呢是false,因为咱们现在比较的是两个对象的地址值是否是相同的,那它俩的地值呢,显然是不同的,或者换句话说,比较两个对象地值是不是相同,其实就相当于是你两个引用是不是指向的同一个对象实体,对吧?对这个呢,换句话说也行,比较两个对象的地址是是否相等,即两个引用就是你这个两个变量名,两个引用呢是否指向同一个对象实体,就是我们对空间当中你俩是不是同一个对象,显然呢,这是我们new了两个,它就不是同一个对象,那就是一个false,这个是我拿的咱们new的这个自定义的一个类来说。
10:20
的,对于string来讲呢,也是一样,String这块的话呢,咱们前面没有见过啊,实际上这个字符串的话呢,我们也可以去new,毕竟人家是一个类嘛,这里边儿呢,我写一个比如叫爱特硅谷。这呢,我们造了一个对象,然后接着呢,我再来一个string,那这时候呢,我们去做一个输出,ST一等等于ST2,这个结果是什么呀?那不还是false吗?只要是等等的话呢,它比的都是引用类型的,都是地址值行,那多余的例子呢,我就不多举了,我们自定义的也好,还是呢,我们这个JDK里边提供现成的API也好,都是一样的,这是对于引用类型来讲。
11:07
哎,带一个测试上面呢,是这个基本数据类型。好,那么关于这个等等的我们就算是说完了,就是这样,大家呢知道首先它这个运算符能够使用在基本数据类型和引用数据类型变量当中,基本的比的是数据的值了,引用的比的是地址值,后边的话呢,我们也确实在引用类型变量的时候呢,是有可能用到等等的,就是来判断一下你两个引用的地址呢,是不是相同,是不是指的是同一个对象实体啊,到时候需要的时候呢,大家会用就可以了,这个呢我们先填一下。
我来说两句