00:00
那么下面呢,给同学们来讲一下,呃,操作服的一个扩展就是操作符的重载,我们在系统的说一下,前面呢,有有些已经讲过了哈,有些没讲过呢,我们把它系统的说一遍,呃,那么在我们这一个。操作中在对集合或者是对呃对象操作过程中呢,我们可以进行操作或者重载。好,我们来看,首先前提要说一下这部分内,内容呢,没有必要刻意去这个记忆,使用的多了自然就熟练了。我们看第一种写法操作符的扩展,就说如果我们想在变量类名等定义的。中使用语法关键字,比如保留字,你加这个反引号就行了,这个在讲基础的时候我已经说过了,我们再看第二个中字操作符,什么叫中置操作符呢?就是在开里边这种用法。就是A操作符B等价于A点操作符B,这个这个地方就是中置操作符的一个重载现象,我给大家举一个案例,就是这两种写法在SC里面呢,都是等价的啊,时间关系,我要演示一个案例啊,同学们请看这里。
01:15
好,我。给大家演示一下中字操作符的使用。好,那现在呢,我新建一个文件叫操作服operator。Operator DEMO。这是讲操作服的案例。走一个。好,同学们请看,那么这段代码呢,可以看到啊,这个N1加N2。N一点N2,那么为什么这种写法可以写成这种写法呢?其原因就是这个加号已经被T。这个重载了,我们进去看一下,从这已经看不到啊,你要这么去输才行,我输一个int,这样呢,我看源代码大家就一目了然,好进到这里面。
02:02
好,我们看一下这个int在这儿往上看,大家看int这边定义了大量的这种操作符,其中像这个加,你看加,而且他这个加法呢,对这个不同类型进行了一个重载。啊,不但,呃,看这加有可以对bit short char in long float等等,所以说为什么你在这儿可以这样写的根本原因就是这个,那么这种写法呢,就等价于这种写法,好,这个我就不去运行了啊,结果呢,肯定是。呃,这个应该是等于三,下面这个呢,也等于三。对,就是一加二嘛,这个就不说了,那运用到我们使用的场景呢,我们可以对自己写的这种类也进行这个加号,或者中置操作符的一个重载,写一个案例,比如说现在呢,我有一个monster。好,Monster里边呢,它有它有这个什么呢?他有个比如说他有这个money,他有很多钱对吧?呃,Money比如说。
03:06
2MO啊money,然后呢,这个妖怪它有多少钱呢?初始化为零块钱,它有零元钱,零元钱好现在呢,我想嗯,在给这个money加这个,给这个monster这个妖怪加钱的时候呢,我想简单一点,就写一个加的方式来处理它。好,那我就怎么写呢,诶,我们写一个啊,我们。对什么使用这个对操作符,操作符进行重载啊重载怎么怎么个重载呢,非常简单,DF加。好,你给我加多少呢?你给我传一个int进来,我就加。好,返回值,呃,看你的需求有没有根据你的要求啊,这我就简单了,我就直接认点我的钱,然后呢,加上你传进来的这个money值,好哎,这个地方我们看到这里面有个问题啊,嗯,这边是this.money这因为这是VR就不能加了,是因为只要变化我们就写成万好,现在我们来看看能不能用了哈,非常的简单,那看我写一个master等于六一个master。
04:19
好,然后呢,我可以这样去写master。加。比如说加了十块钱,或者咱们这样写也可以点。加十块钱好,这两种方式呢,其实就是我们所说的中字符的一种写法,大家以后看到这个呢,能看得懂,就只要你看这个你就知道,人家肯定对这个加号进行了一个重载,你比如诶怎么诶怎么一对象加一个整数呢,看这怪怪的,其实人家做了一个重载,你个定位也能定位到这个位置。好,这个呢,我们来输出一下,简单看一下就行了啊好,Master的money money等于多少呢?来输出一把master.money。好,这个时候应该输出20块钱。
05:02
因为我加了两把。对吧,原先是零块钱,现在呢,我加了十块,又加了十块变20了,好这个是中置操作符,写到这里啊,这个是中置操作符,那么我们再来看还有什么呢,中置。啊,中字操作符下面呢,我们再来看一个操作符的重载是什么呢?叫做后置操作符。那么在我们开发中呢,我们经常有人看到这种写法,就是offer加加点加加这种写法,这个叫后置操作,这种写法呢,要保证我们把前面对象写前面,把操作符写屁股后边来用。这种写法呢,也有好同学们,我们再写一个加加老规矩,大家看我再写一个对操作,操作符进行什么呢?后置重载啊进行还是这个重载。那么这个时候呢,我们写个后置操作符。
06:02
操作好,同学们请看效果,DEF,我还写加加,但是你可以先先减我传进来一个N对吧,假如说你这个加加,你就不需要传值也行,说老师我这个加加,呃,你别给我传了,我默认,呃就是加一也可以啊,那这样子写完写完给后做一件什么事情呢?就是this.money因为加加嘛,肯定就代表加一写完了,那你看我再给他玩一把,叫master。啊,加加好,这个时候就。写完了就佳佳写完了,那么我们再来玩一把啊,同学们,现在呢,我们找到这个地方,直接把这个字打出来就行了。好,我们monster佳佳。好,写到这边,这个我就不写了啊,写到里边,然后呢,这个操作以后我们再来输出一下看看对不对啊master.money。Money等于这个时候呢,就应该在原先的基础上又加了一块钱,这是20块啊,这边就变成了21块钱,好我们执行一下,请看效果。
07:06
啊,请看效果,我发现呢,的确变21块钱了,因为这张我输出一个空啊,但你这种写法还可以写成这个德行,胡老师我不喜欢这个,我写成这个也可以啊,有那这边变22块钱啊,变22块钱执行一下。好变22块钱。20OK,正确好,这是我们讲的后置操作符,我们再讲一个什么呢?就是还有一种操作符呢,也比较有意思,叫做什么前置操作符,比如加,比如有些人上写,你看我们原先写这个代码的时候上写的加。这些。加一个什么什么是不是加A或者加B。或者是非,好,我就举一个例子啊,取取反。我就取反,这个取反的操作呢,它等同于A点啊U这个操作符,这个操作符是一个整体,不能去掉啊,就说这个操作符是一个整体。
08:00
这叫一元操作服,必须把这个关键词加上,才能实现这个前置运算符的重载效果,那我也给他写一个好,现在呢,假如我们对这个money取反,比如说我一取反过后呢,你的钱就变成相反的那个值了来。还是对操作服的一个重载,那么这个讲的是什么呢?前置操作符。前置操作符,就是这个操作符呢,写在最前面的,也可以理解成是一元,也可以理解成是一元运算符,一元运算符也可以,好同学们,我简单给他写一下,首先前面这一部分还是这样写,后面这一部分呢,直接把unary下划线写进去,后面写一个区反啊,这个符号呢,咱们就这样写啊,You you。下线。再走。好,这边呢,取反就简单的很多,就this.money等于负的this this.money。
09:06
好,就取反了,那现在呢,我们来玩一把,看看这个取反到底行不行,到底行不行啊,那首先呢,我把这个monster调出来,然后我们直接取反,你看这代码没毛病啊,你就不能乱写啊,你乱写不是随便写就能成功的啊,这个地方你就要写有呢,呃,这个UN这个关键词,然后写上你的取反的符号。啊取反这个符号呢,也是有要求,不是什么都能进行这个这个取反啊,就是能取反的操作分呢,我写的是像这几个啊加减非或者是波浪啊好,这个呢,我们来执行一下,看看效果如何好,到此再来执行monster。点money monster.money然后呢,等于来加一个monster.money好,这个这个时候我们这个值应该是负的22。
10:00
你取反了吗?啊,当然这个含义呢,可以根据你的需求进行变化啊走我们运行一下,我们看这个结果呢,应该返回了一个负的22就取反了。当然我这写的呃取反是对他的money取反,你们将来如果有需要的话,可以根据自己的业务逻辑来设计,呃,就改这里面的代码就可以了。好同学们,那么这个就是前置操作符啊,负值运算符这个我就不说了,以前讲过,比如加A加B等于A等于A加B,这个以前就说过,好同学们,那关于操作符的这个内容和重载呢,我们就给大家介绍到这里,好同学们,我们给大家进行一个简单的板书。好,刚才我们讲的是扩展之操作符的重载这个话题。首先呢,我给大家做了一个基本的介绍啊,所有同学们呢,这一部分不要刻意的去背啊,不要刻意背。好,首先做了一个基本介绍A基本介绍,然后呢,我说了扩操作服的一个扩展,对吧,讲了第一点。
11:05
这个第二个啊,中字操作符。把这个拿到上面去,好好,然后第三点我讲了什么呢?诶第三点呢,我给同学们讲了一下这个后置操作符。诶,后置操作符的使用,然后呢,我们又讲了一下前置操作服使用代码呢,我整体放到后边。这是前置操作符的使用啊,后面呢,还有一个就是赋值操作符啊,复制操作符在讲基础的时候就已经说过了,最后把这个代码案例给他写到这里了。代码啊,代码的演示,整体的一个案例,给大家加一个这个箭头,整体案例呢,全部都在这了啊,这是啊中置后置前置。前面的调用也能看清楚。好,把代码给大家整体搬到这来。OK,好,同学们,关于操作服务我们就讲到这里。
我来说两句