00:00
行,那讲完这个这次关键字以后,结合呢,咱们咱们前面讲的这个构造器,哎,包括这个封装性啊这次哎,我们这块呢,就可以做后边这两个题目了啊,这两个题目呢,对应的就是我们课后的这个题实验一和实验二,首先呢,我们来看这个实验一。那这呢是涉及到一个银行的一个账户客户和银行的这样的一个问题,实验一的话呢,目前还涉及不到这个银行,那首先呢来看这个问题啊,嗯,这个问题的话呢,只涉及到这个账户和我们这个客户的情况,那我们就来做一下账户,账户的话呢,有这样的几个属性啊,这个代码写的都跟你差不多,都写完了都看是吧?嗯,Private性的ID,大部型的balance,这叫余额,呃,Annual interest rate年利率啊,这都都写完了都是吧,那我们是不是就CTRLC了就是吧,大家写的时候呢,你一开始你要不熟也可以自己亲自再写一写啊,嗯,我这儿呢有练习再来一个。
01:03
啊,再来一个这个三这呢我们造一个类叫做account,看行这块我直接就CTRLV了啊嗯,这个分号分号分号行这个呢,诶我们呢可以都标识上啊,这个叫账号,哎,这个叫余额。哎,这个余额呢,最好你用这个英文来写啊,这balance是可以的啊,有的同学得直接余额,你们看月是吧?啊,这个最好都是用英文啊,我看到有的同学可能在给这个类起名的时候,还有用拼音的啊,见到过啊,不用拼音,拼音到公司里边会被人鄙视的啊嗯,太low了,就觉得啊年利率啊年利率,嗯,这样行,这呢就是这三个属性了,接下来呃,这呢提供了一个构造器,构造器的参数呢,恰好是三个,正好呢是对我们这三个属性的一个初始化。
02:08
嗯,这个的话你也可以这样粘一下也行,或者这时候你要粘都觉得有点费劲,因为粘完以后呢,方法帖得自己洗是吧,其实倒不如我们直接就这么着了,就是吧,哎,写一下吧,也别太过分是吧?啊这次点ID啊等于ID,这次点啊balance等于balance al斜杠一下,哎,然后C4.2annual interest rate等于annual interest rate,诶,搞定。啊,这呢是构造器,构造器呢,就这一个,你也就涉涉及不到说写这次形态列表了哈,就你自己你也不能调自己下面的话呢,呃,关于这个ID,嗯,先说这三个属性吧,三个属性的盖的方法。嗯,这个三个属性的赛的方法,嗯,这个是不是就就就就就想这样了,那就这样吧,诶点一下就是大家写熟以后的话呢,诶都可以这样去生成,后续呢,咱们开发中写代码也确实都这样做啊,但是基于前提呢,就是你先把这个盖算方法自己先手写写熟了啊那那说了好几遍了,那明天就拷贝,很自然的问题是吧,盖塞的方法一定要写熟啊,嗯,那好了,这个概塞方法有了,接下来啊,有两个主要的方法需要我们来完成CTRLC。
03:38
行,那这个呢,Withdraw叫做取钱的操作啊,Deposit这叫存钱的操作,那这两个操作呢,看他有没有相关的一些说明啊,说了这个在提款方法这个当中,呃,需要判断用户的余额呢,是否能够满足提款的需求啊,如果不能呢,给予提示,行,那咱们就相当于得做一个这个判断了啊,那这呢就要取钱那判断说如果我们的balance啊,Balance呢,如果要呃小于大于这都可以,小于也行啊,如果你要是小于这个amount,这就不够啊。
04:15
不够的话呢,怎么办呢,不能取,它下边呢,有一个提示啊,叫余额不足取款失败啊,那咱们就借用一下他的这样一个说法了哈,哎,我就sit out一下啊,余额不足取款失败啊,那另外呢,就是你够的情况就写else,或者呢,我不想写else了,我这就写个return,在这去写是一回事,对的,然后呢,我们就balance。哎,减等于我们的amount,哎这就做了一个冲减啊,嗯,冲减的话呢,他这说成功取出多少钱,那咱们也这样写一下,哎,成功取出,哎在这对加上个amount就行。
05:00
这就搞定了,哎这就我们这个叫取钱的操作,哎下面呢叫存钱,存钱呢,它倒没有具体去说了哈,哎,那当然了,你存钱的话呢,这个amount你你不能整负的啊零呃零你就别存了是吧,哎大于零啊大于零我们balance加等于哎amount这个时候呢,也输出一句,哎也是参照它后边这个叫成功存入多少。哎,这个我们再加上一个amount啊,这个你要写成个负的了,写成个负的了,你就不管它了,这个我就只有正的我才去操作,负的呢,就默默的结束啊,也不写别的句了,就啊成那这块呢,我们这个类啊,就先写成这样了啊这里边呢,这不也有这个这次的使用啊,也有构造器的使用,包括这个封装性的体现啊,这都有啊,那接着接着呢,我们又造了另外的一个类,叫做customer类。
06:03
客户类新建一个class。诶,Customer类,好,这个类,这个类呢有三个属性,这是我们首次出现在一个类的属性当中,出现咱们自定义类的这个变量了,有的同学就接受不了了。啊,说在custom类里边怎么会定义account呢?怎么能出现这样呢?你怎么能这样干呢?怎么不能这样干呢?啊,从情感上接受不了哈,这个我们这个类里边,这不都是变量嘛,变量呢,基本数据类型,引用数据类型说了好多遍了,都可以,那你自己定义的类,它也是类啊,是类,就是引用类型啊,为什么不能定一个account呢?对,是可以的啊,那你要是实在感觉不好理解,你想string都可以,为什么account就不可以呢?对吧?哎,String的话呢,是一个类,我这个account也是个类,那都可以吗?
07:07
从情感上接受一下啊,然后呢,你这个理性上也告诉自己是可以的是吧,实在上情感上接不了,你就理性告诉你可以啊,实在你要没办法喜欢这个女生,你就也没有别的选择了,你就理性上你接受一下是吧,啊可以啊,这个呢,声明一个另外一个类的这个这个变量当做一个属性没问题啊,然后的话,这有一个构造器,这个构造器呢,仅仅是把这个first name和last name呢进行了一个初始化,呃,这个写的是F跟L啊,跟我们这个名不一样的,不一样,也没事是吧,那就按照人家这个要求来吧。CC。诶这个时候呢,你这次加不加都行,反正他这个没重名,哎last name这些L啊好这就完事,另外呢,这个属性呢,没有初始化这个就不在这写了,接下来关于这个first name和last name的一个get的方法有,然后这个账户的这个get s方法都有。
08:08
哎,这呢就没有太多特别了,哎,咱们呢就可以呢,调一下现有的这啊,哎调一下调的时候你注意咱们这个firstname和这个lastname呢,人家只有get。对,然后这个count呢,这个是盖都有。这种啊,OK一下就写好了,你要不保险,你再看一眼肯定保险是吧,哎,这就完事了啊对比你自己写的还靠谱呢是吧,嗯嗯,这个呢就完事完后呢,完事呢下边。啊,说这个构造器这咱们都写过了啊声明哎,这都完事了,然后就就完事了啊接着呢就来写一个测试。啊,CTRLC。咱们呢,再去提供一个测试类。哎,这个呢,我就叫做customer的test了。
09:00
对,把它呢粘过来好,这呢我们写一个没方法。好,从头往下捋啊说呢,创建一个customer,名字呢叫Jane Smith啊,有一个账号是这么多,余额这么多,哎,利率是这么多的一个账户成,哎,搞定啊,我customer cost等于new一个customer out斜杠。啊,有的时候我们这个代码写多了以后呢,呃,就就记不清楚说到底写过几个构造器,或者分别是什么了,这时候你out斜杠一下啊这呢一看哈,出来好几个让你看清楚,咱们呢写的是这个练习的是吧。这是别的练习里的啊,别整错了自己这个包里边的这样的一个构造器啊,嗯,他叫Jane Smith。啊,JA啊,这不叫J这个嗯,Smith。哎,这Smith,嗯,这一个姓一个名嘛,对,这这这两个啊,你要把这俩都写到一个,那后边写啥呀,后边没法写是吧?哎,这外国人这是姓这是名,嗯,就是姓氏在后边哈,他们比较关注于这个,算是叫名吧,所以你看那个外国的,尤其是那个英语系的,他们这个女的要是结婚以后呢,就随这个夫姓了,就是吧。
10:28
像那个希拉里,她叫希拉里克林顿,因为她嫁给克林顿了啊,有时候感兴趣的就是他要再换一个人,还改不改姓呢,不知道是吧?嗯,在咱们中国人看来,这个姓呢,其实很重要啊,姓呢比名都重要,你改一下你的姓呢,你爸也没有什么意见,你说爸这个姓不太好,卡死你了,就是吧?嗯,行,哎,这呢,我们就写好了啊,这是这个对象啊,那此时的话呢,我们这个customer这里边呢,有三个属性,我们通过构造器的方式呢,只对前两个属性进行了初始化了,这个count呢,目前还是一个no。
11:09
啊,其实这块大家写的时候呢,一旦这个逻辑稍微复杂了,脑子里边呢,尽可能的能够稍微浮现一下那个,呃,内存解析的结构啊,到目前为止,我们这是占,这是堆啊,咱们在这呢,这不是生明了一个叫customer堆里边呢,用了一个customer,哎,三个属性,哎,第一个first name ste和这个count,然后通过这个构造器呢,咱们把这两个属性附上值了,这个呢,没有赋值,那就默认值,默认值是啊是零啊,闹本。你用类型的是吧,还是闹啊行,那么我们得给这个人呢,整个账户下边写了啊账号余额利率,哎,那我们就得造一个啊ACCOUNTNU1ACCOUNT out斜杠,诶第一个就咱们声明过的那个构造期啊1000。
12:03
然后2000块钱这个,然后点那个tap键啊,嗯,1.230.0123%。那这个利率应该还是基本上符合咱们当前的这个银行利率的。确实是挺低的了啊,就相当于你100块钱,到年终你能拿101块多一点,呃,但是你知道这个通货膨胀率有多少吗?七八现在应该有是吧,七或者是八啊,嗯,就是现在你这个钱呢,它是数是涨了,但是其实这个购买力差。但是你好像除了这个方式之外呢,也没有别的招,还是得搁银行啊,现在就是咱们这样一个情况啊,你不搁银行,你搁到哪呢?搁到股市跌的更狠,买买这个这个比特币那就别小了,那跌的更狠是吧,你要是放到这个p two币这个理财里呢,钱都没了,钱都拿着跑了,都是吧,还得放银行啊,还得放银行,你也没招,那就是贬值呗,只能这样是吧,余额宝能比他稍微高那么一点点啊,现在也也不咋高了。
13:07
对,原来最高的那时候都已经过了啊。嗯。行,这个就不谈这些伤心的事情啊,你只能是需要做的事,就是把你这个本金就能拉大是吧?啊,多挣一点就可以了啊嗯,这个呢,我们造好一个账户,这个账户目前跟我们这个客户没啥关系,哎,我们得需要让他们俩有关系,cost.set一个count,哎,我们把这个count呢附进去就OK了。哎,这个时候呢,要画内存图,能画不?简单,嗯,这个颜色不好识别,换一个红的吧,简单画一下站堆。哎,就是如果大家要很熟悉呢,你就不用画了啊,你要一迷糊就去画,哎我这呢再画一次啊,这个count的话呢,我们这块呢,只过来这有三个属性啊,First name last name和这个account,前两个呢已经说了,通过构造器呢已经附上值了,然后接下来呢,我们这个21行啊,Account等于new account在对这块new了,Account这里边呢,有这个,呃,这个账号ID,哎有这个balance余额,有这个利率annual interest rate,哎这呢我们也是三个行参在这块定义一下,把行参呢都附给这个属性,哎,我们这个地值给到他,哎这个呢就指过来,哎,就是19行和21行,目前是这种局面,然后23行代码一执行。
14:32
我们把这个atd呢,付给咱们这个方法的一个行参了,这行参这块呢,就生成个行参付给这个行参,行参在这个方法里边呢,又付给了咱们的属性啊,那个形态我就省略了啊,最终的效果呢,就是把你这个A的地址通过这个S方法呢,付给了我这个A了。哎,就是你这个地址给了我了,哎,我呢就也指向你这个结构。哎,这局面呢,就相当于是这个样子了,那此时呢,就意味着我们这个C这个客户哈,我呢就有了这个账户了,哎是这样的,哎你呢可以理解为就是呃,你去银行办业务的时候呢,这个银行呢造了一张卡,哎顺便呢,你还把这个余额呢也存了点啊这是这个银行造了一张卡,然后他把这个卡给了你以后,诶就是相当于给了你一个地址,你或者一个账号是吧?诶你呢就也可以来访问你这个账户了啊,那这个目前呢,其实也还存在着呢。
15:25
就是银行呢,其实它也有这个账号,他呢也能够调你是吧,那你自己呢也可以调啊这呢有两个就是我们这个对象实体呢,现在有俩指针啊啊有俩指针。嗯,那如果我们这个客户要想去存钱取钱,你说我们怎么调啊。是不是正常来讲,应该是通过这个客户找到这个账户,是不是通过这个针过来对的啊,这个呢,你可以理解为就是银行呢,他他也有这个账号也能调,但是银行不能再调了,是吧,通过我们个人去调啊。成,那么接下来呢,就开始进行操作了,说对这个人呢,说存100取960,再取2000行,那我们就是cost点,首先咱们先get到这个客户呃账户,然后再呢去先存,那就是double存100。
16:18
这存了100,然后卡点再get这个账户点再取啊withdraw。取960,哎,再取2000。诶,这不就这样的操作吗?这呢是可以连续点的啊,诶我们这儿呢,获取到这个账户,账户呢,自然而然就有这个存钱取钱的方法,诶这个呢,原来没见过,可以见一下啊OK,诶这不就是这个操作,那正好符合我们这里边儿的这三项。嗯,行,这个操作完以后呢,说你去打印一下这个詹密的一个基本信息,这个基本信息呢,这都给你列出来了,这个难度倒不大,就是写起来有点费劲啊,那我们就老老实实的写一写。
17:09
啊,首先叫customer,一个中括号,然后啊,我们叫cost.get一个first name,然后这有个逗号,啊,这还是史密斯J。还有这么个细节是吧,那得先GET1下拉的name了啊,那他先写的史密斯啊,防不胜防啊是吧,那就先写这个啊,然后逗号,然后接着下边在哎,cast.get一下first nameme,然后这个中号封一下,然后叫has a account冒号,他说ID is。有点长了,这个我们再换一下行啊在这儿。啊说ID is这个时候呢,我们这个加一下,哎,我们通过这个客户呢,Get一下他的account,咱get他的一个ID。
18:09
这就他这个账户啊账号,然后逗号现在是到这儿了,嗯,接下来呢,叫annual interest rate is,这个有点长,我就直接CTRLC一下。啊is思哎,又有点长了,再加上一下换上行啊。嗯,加上我们cost.get count.get啊,咱们的一个annual interest rate,再逗号一下哦,这个人家是这种写法啊。百分之多少对,那你就在这呢,你乘以一个100,哎,在这你补一个百分号呗。这样子啊,逗号,然后balance,哎,Is哎,空格,然后再加上哎cost.get一个count.get一个balance,嗯,然后就没有然后了。
19:05
啊,这样搞定就就是这个难度其实不大,就是写起来有点费劲啊,显得有点长了,但是你自己最好也写一写啊,就是你看啊难度挺小的,你自己写可能还就拼不好了啊执行OK,哎,这不就出来了啊说custom谁has a count,呃,账号是他,然后这个利率啊,下边是balance啊一千一百四跟这个数呢是一样的,好,这道题呢就写完了。哎,大家能体会一下啊,这道问题行。
我来说两句