00:00
那下面呢,我们讲完这个包的这个内容过后呢,我们来看一下这些内容,现在我们进入到面向对象的三大特性,三大特性一个是它的。呃,封装一个是它的继承,一个是它的多肽啊,那么首先我要说第一句话就说,因为同学们前面呢,学过Java的这些一系列都学过,所以说我在这地方呢,有些重点就是介绍一下SKY和Java不一样的地方,一样的地方我就不多说了,所以说肯定不会像。像Java那样讲那么细致了啊,我就快速的过来看第一个。首先我们来探讨一下,在面向对象里面呢,有一个叫抽象的东西。何为抽象,何为抽象,那么在我们这个面向对象里面。经常有人说抽象,抽象。这个不是抽大象对吧,它是什么呢?它是一种研究问题的方法。
01:07
那么什么叫抽象呢?就是说我们在定义一个类的时候,实际上是把一类事物共有的属性跟方法提取出来,形成一个模板,我们把这种研究问题的方法称之为抽象。你比如说最经典的案例是。要你们去写一个银行账号,那怎么写呢?诶不管你是工行的还是建行的,还是人行的,人人行本身没有啊,啊像交通银行的这些账号,他们都应该拥有什么属性,你把它分析出来,他有什么方法你把分析出来,比如说属性,诶我们认为呢,不管什么账号都应该有余额,都应该有账号。I有账号信息。还有什么呢?有余额信息。对吧,还应该有密码对吧,没有哪一个说卡没有密码的。
02:01
那密码没丢了怎么办?好方法?我们认为至少有哪些方法呢?我们认为不管是哪个账号或者银行卡,它必须有这么几个方法,查询的方法,我想看看我有多少余额,还有什么呢?还应该有取款的方法。诶,他肯定要提供取款方法,他还要提供一个什么呢?存款的方法,对吧,我们没有哪一个卡说,诶就不让你查哦,我认为多少钱不不给你说那不可能对吧,可能有取款和存款操作好,最后我们就分析出来了,这个呢就是一个抽象的过程,好我们以这个为例,我们把这个代码写一遍啊,我们来写一遍,快速的用SSC来完成一下,来同学们打开我们的这个。啊,还是加四,我们写一个叫做。这个内容abstract。Abstract。快速的走一遍。同学们。
03:02
好,我们以这个为例呢,来用开写一个写一个这个案例test,我们比如叫银行,银行的DEMO。来写一个object。好,那么根据前面的分析,我们来写一写。好,呃,根据分析,我们编写一个。啊,我们编写一个count这么一个类,好,我们来看看怎么抽象出来的啊class a,快速写一遍。首先刚才我们分析出来有这么一些内容,我们一起来把它搞定。好,来写,方法和属性分开。好,首先呢,我们来写它的属性账号,我们是不让别人变的。没有哪一个,没有哪一个银行卡让你说修改账号的。
04:00
肯定不能让你修改账号,你原先账号是这个密码,你如果你换的话就变变卡了,所以这个呢,我们要写成V啊,我们就写account手UT number,那么这个呢,我们给它一个字符串对吧,给他一个字符串好默认这方我们要要要来写构造函数了啊同学们想一想应该怎么做。啊,我们先写到这吧,待会儿我们一点点补。那么第二个呢,余额肯定是可以变化的,你要分析出来啊,余额就balance balance,那么这应该是个double类型,先给他来个0.0,那么同时呢,一定有个密码,密码呢一般是字符串,所以说我默认先给他一个这个东西。好,写完这个东西想一想啊。因为你在开卡的时候,在银行开卡的时候,人家的账号余额密码是需要你指定的,因此呢,我应该编写一个主主,这个叫组构造器,因此呢,我在这要写先写好,好我让它输入一个account a,好给它来一个字符串。
05:03
好,然后呢,我们有个balance,预先有个balance,他预存一些钱啊,比如说in balance,把这个B改成大写的好,这个是什么类型呢?Double类型的。那么同时呢,我们让他指定它的密码号in。WD是寸类型。好写完了,那写完以后,我们把这几个值给它放进去进行初始化,第一个。第二个好,就是你开卡的时候呢,我们要求把这些输进去写完了。好,写完以后属性就搞定了,再接着写方法,因为时间的原因,我只写一个查询和取款的方法,其他我不写了啊,我先写一个查询方法。查询再写一个取款。存款你们自己去写,那就快速快速写下,查询呢,我们写一个方法肯定是公开的,你要分析出来是DF,那公开的话就query,那么我们在查询的时候呢,肯定。
06:09
呃,这个地方查询就把信息显示出来就可以了,那这个地方呢,我们需要他提供你要查询的密码是多少,因此密码必须给我填进来,我不能说谁谁都让你查,那么有些同学说老师需不需要传一个卡号了,不需要,因为你在查询的时候,你是用本身这个对象来调用的,所以这个卡号本身自己就有。除非你是跨行查询,假设有这个业务,那就带这个账号了,所以说我这呢就不写账号,我就直接写啊,如果你当前这个密码。等于啊,我们我们用equals吧,Equals来进行比较啊,那如果你等于传进来的呢,我们就认为这个密码是OK的,如果他不等,我们直接提示一句话就说你的密码不正确,密码错误,密码错误查询密码错误,错误过后呢,我二话不说return了,不玩了。
07:07
啊,如果说他过来了,我们把这个信息直接展现出来就可以了,直接我输出了啊。格式化一下。哦,账号。啊,帐号。啊写一下啊叫账号号为。为多少的,他的余额当前余额。余额啊,余余额V好给他输出来WD。好快速,那么当前这个账号是当前这个账号肯定用this.account取出来,当前的余额呢?this.balance写完了。好,只要你密码正确,我就给你提供好,取款也很简单,那么取款呢,我们要写一个叫做with。Withdraw是取款的意思啊,同学们取款的时候呢,你二话不说,你首先呢,要给我传入一个密码,我才能取款,同时你要取多少钱告诉我money。
08:08
那当然是一个double类型的。啊,我们把它抽象出来,那么这个时候呢,取款过后,我返回一个double类型。我返回大玻类型啊,返回大玻璃,你取多少钱,我给你返回来,那么返回的时候呢,我们这边要再做判断,如果你的密码不正确,不玩了。你取款密码都不正确,肯定不行,第二个呢,我们要判断你的这个取款的金额是否是一个合理的范围。是否合理,那么主要是不能多取,比如只有十块钱,你要取100块钱,那肯定取不出来,对吧,就写一下,如果你的这个要取这个钱大于了我的余额,我就不取了,哎,不是这个值啊,哎点balance,那么在这种情况下我干什么呢?我就直接告诉你一句话说啊,这个写错了是吧。
09:01
哪写错了?这是什么东西?Money大于this balance。呃。If if。This点。那this.balance怎么写成是中类型呢?我看一下这是哪里有问题了。BY好,这个这个地方写错了,同学们啊,是说什么?呃,有有点问题啊,好,刚才是因为这个原因说你的余额小于了这个money。好在这个情况下呢,我们直接提示他一句话,说余额不足。余额不足,好,直接return了。好,两个条件密码,如果这个都OK,我们真的取款。真的取款怎么取呢?我们首先将他当前这个余额减掉你的money好,然后把这个款返回去啊,直接把这个最后这个余额返回,就是呃,把这个money给你返,呃,这个看看啊,就就返回这个money吧,啊就取了这么钱。
10:13
好,现在有一个问题,同学们看到马上出了问题了。我们这return没有任何子弹是行,那double肯定不行,因此我们一般直接用类型推导即可搞定。哎,这么还有问题啊啊,Return就不写了,我看看这地方怎么写啊,Return它没带值。呃,想想啊,因为瑞你没有带值的话出问题对吧。嗯呃,要要这样写也可以,干脆我们我们这样子写啊,呃,写个N类型啊,我们灵活一点写个案类型就可以了啊也可以就是啊一定要用,因为因为我想这个return它不但是返回值的作用,它还有终止这个程序执行的作用,这个return我还不能拿掉,能理解我意思吗?因为我拿掉过,我拿掉这个过后,他他会继续往下走,我不是浪费我的时间和精力吗?所以这个return我还不能去掉,但是你不能去掉,后面又返回的值又跟你不匹配,怎么办呢?我只能用any。
11:10
能理解这意思吧,所以说地方就是语法的灵活使用,好这个就体现出语法的灵活使用,写了一个案例,好的同学们,那现在呢,我们这个取款写完了,查询写完了,我们来用一把。好朋友们来注意把,先开卡。开卡,开卡呢,其实就是创建一个账号,对不对,来六一个我们的account,那先给他一个卡号,比如说我们是工行的00001这个卡。然后呢,余额我事先给他存到894块钱,OK,然后呢,立马我默认来六个一。啊六默认来一个亿,同学们可以以后再增加修改密码的方法,后面我们还会用到啊,现在写完了以后,我先来一个查询。查询呢,查询这种它会。
12:02
Query给我传一个密码进去,比如说我传了一个密码,111116个一。好写完了,然后呢,我们再取一次钱,我count点为重,我取多少钱呢?比如说我取了一个100块。取了100块,好,取完看这里,这有个问题我做。取取钱,还要把密码给我带进去。好密码了,我这次就写对的啊,故意我就不浪费时间了。好,取了,然后我们再来查询一下account。点query好,看我们的代码能不能跑起来就OK了,同学们看我们代码就全部写完,我们来运行一把好。让一下诶看结果,首先第一次查询的这个余额呢,同学们看到,呃呃报错了,我们看哪里有错啊,同学们可以看到在我们的第哪一行呢,第36行。36行,36行这个地方,我这是一个字符串,这个是double,他说哪里写错了,同学们。
13:10
哪写错了?啊这这这怎么写个这个,这这谁写的这个啊这个每次写了都要怨一下别人是吧?啊跑一个啊跑一个。谁写的好,来再跑一下就可以了,好呃,账号为这个的当前余额是他账号为取款成功取了一个啊,为了输好看的,我们格式化这样子一项。哦哦,这个地方打印出来。啊,打印出来,然后这样这样再运行一下就可以了啊,我输出过后呢,我格式化了一下。好账号原先是这么多取了100块变这么多了,好同学们为为什么讲这个呢?因为我们今天晚上的作业啊,里面就有关于这个取款的案例,大家要在这个基础上做做一点扩展,好这个案例呢,我们就讲完了,大家也稍微的体验了一下面向对象的一种。
14:03
流程,包括我们用到了主构造器,还有这里面的一些逻辑在里面啊,其实你会发现跟Java几乎一样啊,指示形式发生了一点变化,好同学们,关于这个抽象呢,我就举了一个例子,我们就先讲到这儿,好给同学们板书到笔记中,好的各位。抽象的内容,诶,给大家整理一小下。标题二标题二在这儿。好,然后呢,我们做了一个介绍和他的案例,好直接写到这。把这个案例给他拿过来啊,同学们。好写到这,那么我们对应的代码呢?案例代码。案例代码我们给同学们。板书到这里来。好,给大家插入一个小表格,好,代码写完,那么我们截取一段视频。
我来说两句