00:00
在讲这个案例之前呢,首先我们来做一些设计,我已经把它分解好了。那这个呢,大家先跟着老师听就行了啊。只有你见多了,你慢慢自己就会写,首先呢,我先设计的item,就好像你们学这个,前面你们讲电信的时候,对吧,它应该有些子类。啊,我们就写一个item,就是个子类。然后呢,这边我写了个样例的叫case,大家看这个case book呢,我这里面是这样设计的,我设计了一个它的描述,就商品对商品的一个描述,它是一一个什么书啊,或者是叫什么名字啊等等,里面呢,还有一个这个商,这个书是多少价格,因为我这里为了做做简化呢,我这里只设计了一个book。你也可以再加入新的,比如说说老师,我除了book之外呢,我还有电器,我还有食品可以都能搞定。所以我这只设计了一个book啊,因为我简化这个逻辑,然后呢,我继承了item,让它成为item的一个子类。
01:06
那为什么是4G呢?因为我设计一个item职位过后。我将来可以统一的用item来进行传递。好,紧接着呢,我又设计一个bund bound这个单词就是捆的意思,绑一捆的意思啊,这个这个单词B。叫B叫一一捆一捆捆啊捆的意思,一捆。就一捆的意思,好,或者一竖的意思,那么就是代表我,我这个是一捆,这个一捆为什么也是相应的描述。然后呢,这边就有一个打折的一个金额,就是说这个地方我做一个说明,这个低师看的就是我打折的金额,我我给你打多少钱啊,减免多少钱,你可以这样理解啊,这个呢,我做一个说明discount呢,这个呢就是我减免多少钱。就是针对这个,我我折扣折扣多少钱。
02:01
折扣多少钱,那么下面呢,还有一个item,这个item大家可以看到我使用了一个芯,诶同学们还记得当我们在这个行参后面带这个新表示什么意思,是不是代表可变参数,也就是说这个it模可以传多个,能理解哈,我也讲过这个是可以多个,也也就是说将来你这地方想传多少?就算多少。想传多少就传多少,使得可变参数。紧接着呢,我在这里还继承了item。为什么集成item呢?这样我就可以把一个book给它扔进去了,而且大家可以看到邦的本身也是item的,那就意味着这里面我可以嵌套,传入很多帮,那么帮就可以嵌套再嵌套。啊,这个还是要动脑筋的啊,好,这个就写完了,我们第一个事儿就完成了。第一个事就完成了,那么第一个完成以后呢,样例类咱们就设计完了,这种这种思路,你们可以扩展开来完成很多这种类似的思路啊好,那么为为了讲解这个呢,我就设计了一个具体的一个帮本就一会儿我怎么设计呢,诶我说。
03:06
有111本有一个书籍,我们对书籍打折,其中呢,其中第一个是我放了一个这样的东西就看,因为你这个B的结构是描述打折和item,你看我第一个就满足你的需求。来看这里,这个我先写了一个书籍的名称,打折book。好,同学们可以看到这个地方就相当于是他的前面这一部分,因为这一部分呢,是满足你这个需求的,因为book就是item,所以说相当于说我这有本漫画书。是40块钱,但是我打折十块。啊,打字十块紧接着呢,因为你这个B后面还可以写东西,所以说我又嵌套了一个B。说这这个model里面是个文具商品,里面有两本书,那我解释一下这个意思啊,就大家可能有些同学看不太懂,我说一下这个给出的,给出的这个案例是表示我我我有一捆书有一捆书。
04:09
啊,有一捆书,单本单本的。单本的是漫画,就这本书。还有还有一个什么呢,同时还加了一款书,还加了一款什么呢,这个文学作品作作品这一块。那么文学作品里面呢?里面含有两本书。两本书大家看能看懂啊,两本书,那么呃这样价格其实我们用计算方法算出来应该是多少钱呢?就是呃漫画本身是呃40块钱,但是它打折十块,所以说漫画呢,就变成了三四十减去十。40减去十,那里面这一块书呢,是怎么打折的呢?是它一共有两本书,两本书一本是阳关,一本是围城,它一共是110块钱,但是针对这一块呢,打折是20块钱,因此这个里面的书它应该是80加30减去20。
05:07
哎,也就是说这个是80加30,再减去一个20几,最后价格应该是30加上90块钱应该等于120。这就是我的一个结果,但是呢,这个是我们用呃碳的方法来算,不是用计算机来算,肯定是不行的,因为将来你肯定这个形式很多,将来这个班的里面还可以再签到班的呀,因为它是可变的。那我就可以无穷无穷无尽,好,这就是我们那里,好,现在我们来开始来做这个东西了,好,同学们,我现在先写出刚才分析的部分。好,同学们,这个有一点难度啊,但是也还可以,我写一个叫做呃,打折啊,比如叫做sales sales的一个DEMO啊,Sales的DEMO。好,注意听讲。李婷,讲啊,不然待会后面大家看起来有点吃力啊,这边还有用到递归这个题,还是比较综合的一个案例啊,首先呢,我把这个需求先给同学们再拿过来一下。
06:07
啊,需求再拿过来一下,刚才我们已经把这个需求说了,再说一下啊,把这个要求拿过来。好拿过来,然后刚才根据我的分析呢,我先设计了样例类。先设计样例类。这个没有办法引导大家,直接告诉你们这个怎么去做,后面呢,同学们慢慢慢慢见多了就OK了,这是我设计的这么一个东西。好,这个呢,我就放到这啊,这是我的样面类,一共有item,一共有三个,当然这个地方可以扩展,比如说将来你还想说,诶说老师,我将来除了这个书之外,我还有食品可以的啊,可以就是你你还可以加很多东西,比如我将来还有一种叫食品。我也可以啊,一样的道理,一样的道理,只是我现在只设计了一个对书打折的一个实际案例,好,这个写完了以后呢,我这里设计了一个,我这编写了一个打折的一个情况这里。
07:02
这里给出了给出了一个具体的一个具体的打折的案例。然后就打折。打折的一个,呃,一个案例,那这个案例呢,其实说白了就是刚才我们写的这这段代码,就是有一个帮的对象。就因为是面向对象编程嘛,所以说我这样设计的,那根据刚才我们这个人工的算法呢,应该等于是相当于是等于120块钱。但是你是算出来的,好,现在呢,我们就要开始来一步一步实现,这个东西怎么算出来呀。而你仔细想,还是有点难。为什么?因为你这个帮的里面不知道现在有多少个帮的,有一捆,两捆,三捆,你一捆帮里面还欠着帮的。好,这个还是有点难度,那怎么办呢?好,同学们看下面我要做的工作就是这个了。我首先要做几个知识点的描述,就是有些知识点还没说到的要聊一下,有些知识点还没描描述描描述上的描述一下。第一个我先请同学们思考一下。
08:03
就是刚才我们给的这个扳。我们希望大家能不能够搞出把这个漫画给我解决出来。也就是说这是个嵌套结构。那么如果我只要你们提出漫画这个内容。你应该想到我们曾经讲过对象匹配。好的,而且book,而且book这些也好,班的也好,它本身是样例类,所以说这个on play方法已经有了,那么如果我让你提出这个on,这个漫画内容,实际上其实大家都知道你怎么匹配case这个对象帮的对象,然后这个这个是忽略不要,这个又是忽略不要,第三个位置呢,我直接写成book DC下回,因为这个地方的内容是我想要的。而这个价格呢,我也不要,我也不要,我就把它选成下划线,后面还有一堆这个东西,不知道有多少个。那怎么办呢?下划线心就可以了。就是忽略所有的,后面的,我这里就拿到一个DCDC,并返回给res。
09:06
好,这就是我们先做了一个知识,知识点的一个描述中,如何将DC绑定到第一个,我这写错了啊。On book。Book的描述就是漫画能不能拿到,就这样匹配就完事了。好,那这里我提出一个观点啊,如果不想接受某些词,直接用下划线表示忽略,如果你要忽略所有怎么办呢?下划线芯完事。啊,你当然有时候说我匹配到我不管行不行,也可以说老师我这写了一个我不要也可以,比如你这写了个A。你不要,你只只只执行这个也可以,只是呢,显得比较麻烦一点而已,好现在呢,我们把这个拿过来,我们看是不是已经拿到东西了,来各位同学现在的目标啊。现在目标,我们要取出使用学习的这个case语句。K是语句干什么呢?语语语语句也行啊,语句得到得到我们这个书籍啊漫画,你看我这个就拿了,这是这现在还没写东西,只是做一个知识普及,就是做知识点的补充,那现在呢,我们来打一下看对不对。
10:13
现在我们拿到res等于多少呢?加上这个re,这个地方应该输出漫画。他只要输出漫画就说明我们这种方式是可以拿到这个具体值的,因为你将来在进行这个匹配的时候,你肯定要拿到价格吗?你不拿到价格你怎么算呢?好,这个唯一执行我们发现正确。当然请看代码是正确无误的,没有任何问题,当然我问大家,如果我想取到这里面价格,你是不是也有办法呀?啊,我只要价格的话,是不是可以这样格,如果我只关心价格,当然我也可以两个都关心。那假如我现在只关心价格,那我就把这个忽略了,我就写个price,那这边呢,我这边就返回一个price不就完了。OK啊,你看这个时候我打印出来就应该是40这个字能理解,注意听啊,这点很重要。
11:00
好,但我这样一做过后呢,你看返回这个事实能理解吗?啊,这个应该很还是比较好理解的,只是我现在给他提说我只要这个漫漫画里面的字好,这个没问题,这个简单的就没问题了,现在难了,同学们加大难度。现在我只要这里面东西好拿,我要叫你们拿里面的东西就难了。因为里面东西我不知道有多少个,他可能还是嵌套的,你不能写死了对吧,所以说我们来解决第二一个问题,刚才我们解决的第一个案例就是这个知识点。相当于知识点吧。字典一。好,现在呢,我们继续来加强知识点二,知识点二呢,我提高了一个要求。接什么要求这样子的。质点,二是通过艾特表示法将嵌的变量直接绑定到一个变量里去。啊,比如说下划线新绑定的剩余的item上到这个位上面也可以用,好,同学们看,现在我的要求又变了,请请你这样做,在这个嵌套中,漫画和紫色的部分绑定到变量中,紫色的部分就这一大块,我想绑定。
12:07
啊,这这个不用一个案例还真的不好说啊,就要把这个拿回来,那这个时候怎么绑定呢?在开里面它支持艾特表示法。将嵌套的纸把到变中,这后面同学们也会用到。那我直接看这个案例,我直接玩这个东西了啊,代码很简单,就是圆在哪里改了,就是如果我想返回的是整个这一个对象,我我刚才只是拿到book里面的漫画,我是想反定,但是有时候我是想把整个对象返回,我怎么办呢?前面写上一个变量名称,就变量名随便写abcd都OK,然后艾特服务。这样子,这就表这这句话表示什么意思呢?就这句话表示什么意思,就是我这匹配到的这个补课对象交给。啊,那其实下面这个也是一样道理就是什么,我后面所有的东西交给res,然后我把它做成一个圆组的形式返回给他。
13:09
大家应该看懂了,那就意味着将来如果有多个,比如说我要把再再往里面分,就是再进行这个处理就行了,其实这已经有递归的概念,慢慢就已经浮现出来了。好,这个大家应该也能看懂。啊,所以为什么要分步讲,那知识点二,咱把这个案例呢,也走一下,很很简单啊,当然分步讲你都会觉得很简单,那我讲你可都觉得很简单,但是自己写就觉得难了,对吧,这很正常。那这个时候我们第二个知识点就是在这个基础上来走一个拿下这段代码。那么为了不跟前面这个打架呢?我写个二。没毛病吧?这里我写个变量,这个变量叫什么都可以,叫不可也行,叫什么都行,那么我这叫就叫阿吧,然后中间有个at。OK,那也就是说你将来当然这个地方我就也形成下划线了。
14:02
啊,就是这个整个这个book的值就交给art了。那同样你后面这一大堆,你不是要匹配紫色的部分Z吗?啊,那要把这个拿给他,那你就写个变量名称随便写啊,我这就写个rest。啊,就是余下的部分,当然也可以写别的名字,那么艾特福。好,这时呢,我把它整个做成一个圆组返回,怎么返回呢,R和。好的好,这个时候我们res就拿到了什么呢?既拿到了我们的book,也拿到了瑞士的部分。好,这种写法大家一定要有一个基本认识啊。好,同学们,我们运行一下,看看这个RESULT2我们到底拿到什么东西,执行一下,否则。啊,就说我们一执行呢,我们发现,诶,我们其实已经拿到我们要的东西了。第一个元组是一个不可对象,第二个元组呢,是一个帮的对象,但是这个帮的对象它是一个rapid的A,因为它里面是什么呢?他认为你认为还有包裹,因为他认为这这地方可能是地归拿到的,所以说这个地方呢,就。
15:09
他就会给你返回一个。这个而。那有些同学老师我怎么去去掉这个呢?大家看啊,因为我这里其实只有大家都知道,其实我这边只有一个帮的。对吧,如果你明确只有一个班的,你可以把这个信号去掉,那么它就会把这个VIP的给去掉,再说一遍啊,我接着讲知识点三。这个大家看应该能理解了啊,因为这个案例的写的很清晰的,那么知识点三呢,我们再来看,如果我们只想绑定一个帮的,因为从我们这儿看呢,我们知道这后面只有一个帮的。那么你就可以把这个星号去掉,就这个rap的也就拿掉了。就星号不星号区别在哪里好,这个呢,我也是知识点三。不使用下滑星绑定剩余的item到呢?很简单,你只需要把这个去掉即可。
16:04
直接写到这就可以了,好,这个呢,我们也把这个知识点给大家写一下。好同学,不着急啊,这个知识点我要给他讲清楚,你们才能后面才理解的比较到位。好,第三种方式。第二种方式呢,就是我现在呢,诶不想要这个,我我知道只有一个,你别给我整这个rapidrra了,那怎么办呢?Very easy,这个该怎么写还怎么写,比如说我这写个二以示区别啊,写成三吧。写成三,这边也写成一个三,那这边因为我知道只有一个,所以说这个我可以彻底的拿掉。我不要了。啊,彻底拿掉这个就只发为一个啊,因为我知道只有一个,我就用这一个变量去匹配也是可以的,那现在呢,我把这个也给大家打印出来,三。三以示区别,好,同学们,我们再来看三跟上面有什么区别没有呢?区别其实就是一点,把这个拿掉了。但是里面这个碳拿不掉,因为里面这个他又不知道到底有多少个了。
17:02
对不对,所以说这边呢,它至少去掉了一层。好,我们来运行一下,三是什么样概念走。好,注意比比较,哎,同学们可以看到的确如此。哎,他拿到,但是里面这个book,他又不知道你到底有多少个book了。所以说它又是一个rapid,这个很正常,好到此啊,同学们,我们这个,呃,对这个案例的这个三个知识点,我们就讲通了,下面呢,我们就当我们有有了这个知识点过后呢,我们再去解决这个问题,就显得比较简单了,来先把这三个知识点给大家。补充到这里,那刚才我们讲的是什么呢?刚才就是给大家讲了有这三个知识点的一个再说明吧,再说明好,我分别给同学们阐述一下第一个知识点。啊,第一个知识点,好,这里我们补充了几个知识点,第一个。哦,对,我们我们应该是这样讲的啊。应该是从这个嵌套匹配这地方还没有,还没有这个做笔记啊,没做笔记来板述一下。
18:07
反述一下,好,刚才呢,我们讲了一个呃,匹配签到结构的前面这一部分的内容来走一个标题二。标题,那么匹配签到结构呢?我首先来提出了一个需求。这是我提出的一个具体的一个需求。对吧,好,那么基本介绍我说了一下。啊,然后呢,提出了我们要去完成的这个案例的一个具体要求是这么一个第一点。好,第二题。第三点啊,这是我的一个要求,那么讲这个讲完这个要求以后呢,我就按照这个步骤一步一步往下给他分析了,首先第一步我先创建了样例类。啊,创建了一样B类,那么这个时候呢,我们就直接来一个小箭头。哎,相接,那么这个样力类是怎么创建起来的呢?同学们看,其实就是这个样力类。
19:06
就这。好,我把这个呢给同学们板书过来。哎,就是刚才咱们写的这个样例类的一个设计,就一步一步设计出来,把它放到我们的表格第一样样例类,第二个呢,我们样例写完了过后,我们写了一个啊,匹配一个签到结构,这个结构呢是我们给出的一个案例。啊,给出的一个案例,好这个案例呢,我也写到这里,好匹配的就是待会儿我们要去测试的案例呢,是这样给的一个案例,具体的一个打折的案例,好这个呢,我也给同学们阐述到这里。第三点呢,在这个基础上,我们补充了三个知识点啊,这三个知识点呢,我直接干脆把它把它一起写到这就完事了啊,我就不一个写了,三个知识点一起放到这。对,补充了,为了为了讲解讲解这个案例的,讲解这个案例案例,我们补充了补充。
20:02
补充了三个三个知识点。三个知识点,那这三个知识点呢,这个案例我就直接放到这就完事了,那最后就是解决方案了啊。好,这就是我们这个案例的准备工作就做完了,就到此准备工作就已经OK了,包括你的知这这几个就了,就带最后一招怎么去完成它,好截一段视频。
我来说两句