00:00
打开银行。第一个练习,大家需要第一个练习我来写,后边的话呢,呃,后边第一个你你也得写,然后你看他是怎么写的,后边然后你也需要写。练习目标那Java语言中面向对象的封装性及构造器的使用。在这个练习里边呢,我们将创建一个简单版本的account账户。这个原文件呢,放到banking这个包里边,这个包没无所谓哈,在创建单个账户的默认包中编写一个test banking就是一个测试的一个类,这个测试类呃,将初始化账户余额,并可以执行集中简单的事务处理。最后。该测试程序显示该账户的最终余额,就是我们这个整个的这个,呃,要求任务,然后呢,那写吧。过来。回来。干掉,来,我创建一个B。
01:06
一个包。Com点艾特硅谷。点兆一点。好了,先创建一个类,这个类叫。不让我们创建的啊,这个框子长什么样了过来。按要求他说有个account类是吧,Account类这边有具体的细节要求,你也可以看它看这个,呃,MODEL1打开,这里边有个什么呀,有一个GIF图片,打开大家看。哎,这是一个什么呢?这是一个UML图。减号我说过是代表什么意思啊?Private private double类型的balance,然后是注意这个加号啊,带下划线的代表它是一个。
02:04
构造器在下滑线代表的是一个构造器,这个时候的话呢,它有一个参数double类型的balance,很明显这个应该是对这个账户进行。初始化的有一个get方法,然后deposit,这应该是有一个是取钱的,有一个是存钱的,OK,过来你看,呃,私有的balance,就是余额代餐的in balance,对balance进行初始化,Get balance返回余额,Deposit,啊,这是存钱,Withra,取钱,那写吧。Private double类型的balance。啊,Account,这是一个构造器,有个参数干类型的talent。
03:01
This。这点我们没有这次啊。Balance等于in,把这个初始化,然后有一个get balance方法,还有一个发布一个withdra吧。Deposit是存钱的方法有什么什么传说啊?AMT,看看来。我都写过N遍了啊,就每个班每个班都讲。这个这是增加金额的,你看这不有个参数嘛,是吧,增加金额的,所以说增加金额应该应该怎么写。存钱的是不是这个账户这个钱加呀。这没学,写没写这。写成什么?Balance。加等AMD吧,是这么写吧,再有一个public world with。哦,取钱的取钱的话取多少钱呢?取这么多钱。
04:04
盐港AMD。写完好了,这个写完之后的话,我如何来进行测试呢。过来看这。我看这啊,他说编译这个文件运行结果是这样的,于是我们找编译这个文件,就是在这个MODEL1里边有一个test bank复制过来。复制过来。到这儿新建一个。包点这packing复制过来,CTRLV复制过来之后的话会有一些错,这不要紧啊。打开。你说自己对不要不要。好,首先这个包名就要改一下这些点就可以啊,禁止把这个包名对于我们这个包名。然后呢,Import是导。导入那个类,我们我们这个不在班科那个里边。
05:02
这个按住按住了点他吧。第一个就是把这个类给它导进来,这import就是说我这个各式类和我这个类不在一起,我需要把它导进来,就像我们前面用scanner一样,然后的话呢,我们看它看它。我忘记。后边还有一个问题是吧?Account get balance account这块默认指先好。啊,这说没错,那现在的话你跑不起来,就是一步一步看看第一步哈,创建一个账户,让这个账户有500块钱,怎么创建呢。我account等于六,我们还记得我们那个扩号器吧,是不是初始化那个余额的呀,500。然后这是取150ACCOUNT位票150,然后是。准22块5a.CLOSE22.50。
06:03
再来花47块六毛二矿钱被。47.62最完了没有,就是说我们我们对这个test banking啊,我们不但要给它重新的这个编译是吧,代码还需要写右键原文件re s好了,把这个结果跟。这个结果去对。如果一模一样的话,测试通过,如果不一样的话,测试失败,那我就很明显是一样的,看这不这么充一个账,500块钱,一百五二十二块五六毛二,或者剩324个八毛八,这样这就写完了,那这个写完之后的话呢,我们还可以来写。第二个。这段话我们看第二个啊,这完事了,第二个练习,我第一个大家一会需要写一遍啊,第二个练习这里边的话呢,我们将学习使用引用类型的程序变量,这个复杂了啊,他说这本练习中将扩展上面那个银行项目,增加一个customer类,Customer是什么意思啊?
07:12
客户客户,客户可以有账户,客户里边包含一个account,于是我们来看一下图model to。打开这个。这就是。Customer customer里边有这样一些属性,First name last nameme,还有一个什么,是不是还有一个account类型的account呀,然后也有一个构造器,构造器是first name last,能看懂什么意思吧?是不是为first name last进行初始化呀?呃,Get方法,S方法就比较简单了,是吧?它有一个balance balance就是刚才那个,呃,Account一点一点一点一点也没有变化。然后呢,写完写完之后同样去编译这个test banking,对,我得的结果应该是这样的。
08:05
练习二,那练习三。练习三啊,练习三呢,只需要修改未知方法,只有一个反回值就可,因为我们现在取钱的话,随便取,现在的话。我们怎么了?我们要来修改这个方法,修改存钱,使得返返回一个处存钱种子成功的取钱,你需要看取的这个钱和有那个余额是不是能够,如果要是够的话,返回处,然后完了扣钱,如果不够的话,返回false,但余额不变,这个在执行完贴的方面之后的话呢,这个就会有打印这个结果了啊第四个练习,第四个练习的话呢,需要使用数组进行结合,第四个咱们先不说吧,是吧,第四个有点复杂,大家123可以写,先把第一个先写完,然后的话呢,尝试着来写一下第二个,看看怎么样。这个这个半个我是不是已经发给大家了,有吧,你们说你们说没有就没有,其实有。
09:18
来吧,同学们,整吧,这是仅是复杂一小点说,这个练习中将扩展这个项目,添加一个customer类,Customer类在这呢。我们还是用这样的方式来说哈,创建一个类过来创建。Customer。我们看看哪一步可能会不会写。快看。
10:01
Ctrl shift f格式化。回到这个里边来看谁呢,看他。CTRLC过来。一会儿呢,你也要通过这个过程来看三个属性私有的。What the time应该是string型的是吧?First name。Last name还有一个什么,还有一个account account就是这个人会有一个账户,Account这个跟前面不同的战于啊,这个类型是我们自己定义的。别的没有,当然我们也可以来看这个图,看这个图也可以的。看这个图哈,这不是吗?呃,Firstname lastname account,然后的话呢,构造器对firstname lastname进行初始化的,这不是在这吗?是吧。
11:07
直接可以S感生构造器。产生构造器使用firstname跟lastname,这样就可以。但这里边的话呢,用到了这个this关键字,不过你不用管它,把这个变成F,这个变成L,这样写也可以。I。L一样的,就是我们的扩招器,干什么呢?First name last name进行。初始化的。再过来。过来的话呢,我们看这个是什么,这个是有。两个方法都是get,那就写吧,直接写就可以get for name。
12:05
还有一个什么。Get lastname,写完set count set。还有一个啥吧。好了。我想不出什么理由来,你照着我们的这个文档。你照着我们的的这个文档和这个UML图,你说老师我写不出来。我真我你你可以说老师我写的比较慢,但说老师我就是不会写。我就会挺郁闷的。所以说就是以前在学,以前在学技术的时候,那个时候就初学的时候是吧,我也感觉这个技术这个东西很难,但是我心里边始终是有一个底,就是我肯定能学得会,为什么?因为那么多人都能学会。那我肯定能够学得会,那学习的办法是啥呢?比方说本本书是吧,我我我我现在我现在我都这么想,我看一遍不会,我看两遍,看两遍不会,我看三遍,如果看到这三遍我还不会的话。
13:09
那说明我太笨了,我相信我没有那么笨,所以说这个也一样是吧,大家把这个东西拷过去,然后就照着我这样,像我刚才这样是吧,一个一一个一个往上填,你说老师我不会写。那我不理解是吧,你哪块不会写。难道想不出什么理由来?好了,这个写完,这个写完之后的话咋了?这个就就完了,然后开始这就OK了是吧,然后找谁呀,找他。Model two里边的test banking。复制过来。刚才这个呢,改个名就叫一。一嘛啊,怎么改啊,按F2。改成一,因为因为新的我要复制过来。新的复制过来,按finish,这就不用管它。C。
14:01
复制过来之后的话,没有一些问题,安排办一个一个来,首先包得打上。对象不要。就不要了,打包按I的,因为这个里边它没有,仅有拍开按I的,添加一个包进来,好的,这个东西不对,按controlrl s o。错了,对,Ctrl o,它会自动的把这个O导进来,然后往后写吧,第一个。第一个是啥呢?这呢创建一个人叫根尼史密斯。等于六。Partner。到。芬尼。史密斯。当然这会还有一条代码啊,看着刚才说创建一个账户,这个账户有500块钱。
15:05
这么写吧。Account。写完然后怎么了,然后就是啊,在这儿呢,说让芬尼史密斯的账户是他,你现在的话,这个账户有了,这个人有了这个账户跟人还没发生关系吧,有没发生关系啊。Customer设置属性吧,How设置为它,这不就是吗?上跟跟尼史密斯的账户是他,然后。取钱。至于150,那就是这个时候,因为已经设置了这样的一个关联关系,所以说其实是谁取钱呢,应该就写到这样写比较好,他account,那你史密斯的账户里边取150。然后再来存存钱。
16:03
Get account点22.5。再来。取钱47块六毛二。盖口框点withdraw。47.62。最后这个结果就完事了哈,看吧,这个结果跟谁比啊,跟我们word文档的。Word文档的这个比跟它肯定是一样的,我就不比了哈,这就是第二个练习的整个过程。我写完了,然后大家要想什么呢?大家要想如果你写的话,你说老师貌似还是比较困难是吧,哪一块困难。什么困难?Ctrl shift啊,这个你说这个困难呢。
17:00
那我再给你演示一遍。老师是不是有错啊?Ctrl save o在。非就是在英文输英文输入法下边啊,你要是整那个什么,整那个谷歌输入法不行,Ctrl c o看见了吗?它就自动导进去了,这是一个快捷键。快捷键还有哪里还有哪里困难,小丽呀,你说说呗。你觉得有问题吗?没啥问题啊,请坐。李艳辉有问题吗?没有思路,没有思路的话是这样的,嗯,看不明白测试里怎么写,测试里你你是指的这个英文不认识呢,还是啥不认识。这个英文必须认识,你看这不是吗?创建一个账户,让他有500块钱是不就是不是这么创建的,然后创建一个人叫珍妮史密斯,这不是吗?创建一个人叫珍妮史密斯,然后是让让他的账户是500块钱,是不是给他关联起来的呀,然后取钱,存钱,取钱。
18:21
然后就完了。还有啥问题?来,咱再点点啊,陆军你说。你没问题,好,请坐。认真。暂时没有。这么严谨是吧?孙志红,你说。就是最最怕的是啥呀,最怕的就是我不知道有没有问题,或者我有问题,但是还不知道是啥问题。
19:03
以前问一个哥们是吧,我说你有对象吗?我不知道有没有对象。这应该是有对象的一个最高境界吧,我说你有几个对象啊,我不知道我有几个对象,然后弄了一圈之后,对哥们是确实是没有对象,他认为旁边的女生都对他感兴趣,实际上没有人对他感兴趣。我们后边我们会讲叫数据建模,就是一个错误的建模。上大学的时候是吧。这个这个有病了是吧?烧的特别厉害,一个女生给我买饭,然后这个在旁边陪我,让我产生了一个非常错误的想法是吧?我觉得他对我有意思,原来人家是在为这个入党积累一个好口碑,我就成了那个炮灰了是吧?好了,那这个就写完了,大家也需要来写,我第三我来写一下,然后我们你就把两个都写完哈,第三个看,第三个看还是这个,这个的话呢,直接过来说修改个框子就可以,别的不用改。
20:06
直接过来,但是这个呢,我们需要把这个啊再复制一份,要不的话就混了哈,这个点住CTRL键拖一下,把这个改成。三第三章的嘛,过来。修改。而修改呢?不要。第一个。修改deposit deposit是存钱,存钱总是成功的。存钱总是成功的,存钱这个方法返回一个布尔值,存钱总是成功,就说看这个操作是不是。成功了。
21:03
好,然后是取钱,取钱需要检查提款的数目是否大于余额,余额就是能不能取得起,说白了。布尔值。我们认为。是可以取成功的,怎么取呀?默认。哦。看好吧,但实际上它不一定成功吧,是吧。就是是不是不一定成功啊。那成功的时候怎怎么整啊,成功的话应该这个应该不能扣吧,是吧,If if什么。Balance小于MT,就是我这个取得钱数比我余额还大的话,我直接怎么了,我直接return false是不就完了,这个时候这个方法到这三十五行是不是就结束了,后边不会执行写完写完之后把这个复制过来。
22:07
第几章的,第三章的。这个test复制。拿过来。这个把这个改一下,F2改成二。这个赶紧来。过来。嗯,这都好办了啊。这个CTRLD删掉ctrl c o导进来。注意,这个时候会倒吧。点去掉。你搞包来。被告。A,然后的话呢,你看这O,我们看这个是不是有选的呀,因为现在的话呢,在我们这个项目里边,我们是不是有两个customer,一个是半半个包里边的,是不是还有一个半个三包里边的,我们是不是用这个里边的找进来,这也一样写完,然后这个代码,这跟刚才一样,一个一个写就可以了。
23:04
我况就后边我其实我都不咋理,写了写吧。不写了,好吧,大家自己来写吧,给给大家留点悬念。等于now。等于二分好解完之后的话呢,这个结果需要跟。跟他一样,那比较难的是练习四,123的话呢,我们现阶段的知识都可以练习四呢,在哪呢?它跟前面的数组相相连了,而且这里边这个逻辑呢,会有一些,来吧,大家把刚才那个练习二和现在我们没写完这个练习三写一下呗,有问题问一问,然后的话呢,一会我们来讲练习四。F9,练习三呢,我们再说一下练习三这个问题可能在哪呢?可能在练习二,对不起啊,练习三比较简单。
24:01
A3就改一个那个值就可以了,我们close。回来我们来看这个练习。二在这。我多写了个什么呀,我多写了一个customer,然后的话呢,这块写了一个account类,然后就是customer跟我account之间发生关系这个事儿两个层次,第一个从语义上讲。第二个从语法上讲,什么叫语义,什么叫语法呀,就是我们平常。平常说话的是吧,于情于理。于情啊,我不能这么做,于理我应该这么做,就这个意思,于情于理我们都应该这么做,比方说看这个哈,看里边有个属性叫account,抛出这个account之后的话呢,它没啥了属性。构造器盖塞的方法比较简单,Account这块我们写完了回来我们来看这个测试,这个技术含量的话呢,在这个测试里面。
25:03
二过来看这哈,看这诶有一个customer,有个account,主要是这一步。设置完这个关系之后,它是咋样的一个关系,我们画一个图。画一个图,有一个堆内存,还有一个半内存。这是对内存。好了。我们最开始的时候怎么写的呢?最开始的时候啊,我们说创建了一个矿类是500块钱。这一步有这样一行代码。啊,这是一个ACCOUNT100块钱这一步的作用当是个什么道理呢?我们将在这个里边有一个在站里边啊,有一个我。
26:17
框怎么了?这里边的确是有这么一个框对象。啊,还有一个什么,还有一个余额是500。就是这么一个意思吧。好,这个时候的话呢,它指向他。是这个意思吧,这清楚吧,是吧,然后呢。我们又写了一步,就创建了一个customer,这个customer叫珍妮史密斯。这史密斯它指的是什么呀?有一个firstname,还有一个lastname这一步。
27:06
作用是,哎,我这块有一个。啊。Customer。同样这里边儿有这么一个属性,这么一个这个这个这个这个对象。What name?珍妮。他名字。好,那我们知道什么呀,我们知道啊,我们这个属性里面还有一个属性,我们这么说,这是first name。长点。还有一个是。Last,把这两个值都写好了,都写好了,这个大一点。好了,那实际上的话,这边还有一个什么呀,是不是还有一个属性叫我呀。是吧,这个矿就像什么。
28:03
Account,真的这个first name last name直接附了,还有一个account,那这一步的这个作用呢,暂时这个值应该是是什么闹吧,因为你没管它呀,所以说这个图这样画。这图这样画,画完好了,然后我们主要来看中间这一步,这一步也是我们这个大家比较关心这一步是吧,这一步会起到一个什么作用。哎,我们会有中间这一步,这个往下挪一挪,往这这个往下挪一挪。放这儿好了,还有一步,这一步会有什么作用,大家看我现在这个框呢,跟我这个。我现在这个account跟我这个customer之间是没有任何关系啊,下边的话呢,啊,有这样一步说customer.s count等于它,它将会起到一个什么作用,是不是我这一块的这个account。
29:09
这个怎么了?这样不好。配个point。被狗控制。指向指向他了呀,是不是这个意思啊。是不是这个意思啊?能看得懂吗?啊,这就是这一步的作用,就是说这个时候怎么了,让这两个对象之间发生了一个关系,而我框的指向的是它这里边还是始终只有一个我框的对象,所以说呢,这个代码可以进一步的写,这个可以不要。这个可以不要。把两部拿一起来。起来写,要不什么需要一个账户。
30:04
New account。500。大家看然这么写的话,这个框是不是一个匿名对象啊,但是他却有一个引用,谁来引用啊,是不是customer的account属性引用它呀。啊,这个再对他进行引用,于是下边的话呢,你看我花谁的钱呢?我花珍妮史密斯的钱,我往珍妮史密斯这个账户里边存钱,再取钱,后边这个结果也一样,变成卡点get account这样写结果是。一样的。结果是一样的。好了,这是我们希望的一个效果,那还有一个效果是什么呢?还有一个效果呀,是这样,我把这个展示我先住,展示我先住掉。这个是我们正中零代码啊,还有一个效果是这样。
31:04
我们还要200。212里边的一个一个情况,那二一来。他情况的话呢,是这么写,我忘了还有。好了,然后呢。这位这个这行代码去掉。这个这么近。好。要是这样一写完的话,这个执行结果是不是一样的呀,但是我从未建立起customer跟A框之间的任何关系吧,那这个时候这个味道完全不一样,虽然结果一样。
32:05
我再说一遍啊,这个味道完全不一样,虽然结果一样,因为什么?它们之间cut是cut aor是a account,这是两个独立的对象,懂我懂我的意思吧,它们之间没有发生任何。关联关系。这是两个独立的对象,他们之间没有发生任何关联关系,这个和刚才你设置完那个之后的那个效果完全的。不一样。看啊,这个时候。我account你看你仅是对这个账户操作,但实际上怎么了?这个账户不一定,或者说在这里边根本就不是这个珍妮史密斯的,这么写的话,这个程序就瞎了,虽然说结果一样,但是整个的感觉完全不一样。
33:19
好,这是我们这个程序大家需要注意的地方,而第三个练习呢,没啥说的啊,第三个练习在哪呢。在这儿。这个里边仅是需要我们去改一下,这个出跟false是不是就可以了呀,这个很简单,唯一一个需要说的就是在这儿,我如果呃这个balance要是少的话,我是不是直接return for就可以了,然后把这个测试程序写完。测试写完我来写吧。家可能还没写到这儿呢,是吧,我写完来。这尼史密斯跟他玩的代码一样。
34:10
然后500块钱。我们习惯于这样写啊。500。然后因为底下都是什么一条有框的,我们我们这样写一下。就不一样了吧,我创建了一个账户,是真的史密斯的吧,那我把这个账户是不是给这个account了呀,这个时候底下一顿操作好看结果。这个最终执行效果,这个执行效果跟这个一定是一样的,我们不再做空说明,大家可以把前三个看一下,然后的话呢,把第四个研究研究,看看有没有思路,能不能写出来,我们一会儿来讲第四个。F9,这个啥步骤呀。
35:09
我们是不是有这么一条线儿啊。你看懂吧,我框我可以操作,那我用卡这个框是不是也可以操作呀。懂了没有?嗯。这个图画的真挺好的。是吧?懂了没有?
36:04
行吧,好了,这个完事,这完事的话呢,咱就注册下一个,下一个做主的这个。梁小金同学是自学的哈,把这写完了,我觉得写的还挺好的。嗯。哦,我们以后呢,会有很多这种类似的案例,没有这样的案例的话,光辉理论是没用的。就是就是代码是写出来的,说别的就是有很多时候开发的时候,或者你或者是或者回头跟你大家跟红咖,或者是那个红包。他俩都是中间有个红是吧,那个交流是吧,开发的时候有很多时候我不知道是为什么,但是我能把这个代码写出来。嗯,开发的时候就很多时候我不知道整个原理,这个流程是啥样,但是我能把这个代码写出来,但讲课的话还需要知道是为什么。而平常做开发的话,其实会写是是第一要素是吧,我们看。
37:02
练习四。用数组表示多重性啊,练习目标在类中使用数组作为模拟集合操作,本练习中将用数组实现银行与客户间的多重关系,有银行跟客户的多重关系是吧?对银行来说加一个B类。B类就是说得有银行了是吧,那银行对象跟踪自身与客户的关系。Customer对象数组实现这个关系啥意思嘞?就是银行可以有多个。客户,那银行如何来描述这个客户啊使用。数组,因为现在还没学集合,或者学集合的话,可以使用集合来做,还要保持一个整数来跟踪当前有多少个客户创建bank类,半类里边有两个。属性,一个是customer customer对方数组,还有一个number of customer整数,跟踪下一个customers数组的索引。
38:07
说白了,就写写个半块呗,来。过来在这写啊。Bunk。最大化。我买饭了。第一句话,创建一个类。第二个。啥嘞,为B加两个属性。创建吧。他他数主是吧,他告诉的。
39:04
都这么写啊。新的数组是那样写,卡数是不是也这样写啊,还有一个整数。写完,这是我照这个要求写的吧。对吧,能会写吧,再来。构造器。装去啥意思呢?构造器啊,把这个数组进行适当的初始化。看过多少器嘛,是吧,大家看为什么进行合适的初始化呢?因为我这个数组的大小是不是不能变呢。
40:01
数值大小你一创建之后就你就不能变了,不像集合,集合里边放多少个人都行是吧?好了,那数组的这个大小要是不能变的话,那我这个银行里边能有多少个客户啊,是不是不一定啊,所以说我必须得给他初始化的。不够大。有卡吗?比方说我里边有有100个人。无所谓哈,就是说我这个我我这个银行里边可以纳100个账户,100个这个客户是这个意思吧。是这意思吧,你当然你也可以是十个,你也是一可以是1000个,这个无所谓,就是说哎,我这构造器里边的话呢,我把这个进行初始化啊,我这个长度不够的长,但实际上可能没有,那可能没有那么多,可能没有,那可能没有那么多人吧,是吧,啊再来。不是吗?呃,以合适的最大尺寸初始化customer复数再来。添加一个爱的方法,叫爱的。
41:05
好了。添加一个艾特卡干什么呢?At customer里边有两个参数。一起啊。谢了。说参数是姓和名。F string l是我用这个F跟L能干啥呀?不能创建一个卡通对象啊。是不是要填账户啊,我填那个客户啊。卡FL是不是利用这个F和这个L创建了一个新的卡ma对吧,然后呢,后边不是比较重要啊。
42:02
我要把这个新的customer放到我们的这个。数轴里边去是吧。怎放数组里边去啊?那同学说这么高。Customer,这是数主办第零个元素等于customer,这样才可以吧。可以吧?这样写完之后的话,因为我可能往银行里边去加很多个人吧,那我加第一个人的时候,我是这样,我加第二个人的时候,他还是零吗。啊,我往这个银行里边啊,去加很多的这个,呃,客户我加我创建一个人加里边,再创建一个人还加里边儿,所以说我创建第一个人的时候,给他的第一个元素,创建第二个人的时候,是不是应该给第二个元素啊,所以说这个这个角标应该怎么办是。动态变化的吧,能理解吧。
43:03
那怎么是怎么是动态变化的呀,我们是不是有个number customer。是吧,啊,这个是零。写完之后怎么了?我让他再加,那你下次要是再加的时候,我是不是就把这个大同对象付给了数组里边的第一个,第二个元数量。再加的时候,是不是就赋给第三个元素了,OK?再来。分享两个方法,对。这个容易是吧,就get方法就可以了。直接返回NUMBER5。画面这么写,我们也这么写。再来一个什么呢?下一个是添加这个方法。
44:01
E。Get customer它什么?返回指定的customer。返回指定的customer get不怎么指定啊,我只能是返回指定索引的customer,哪个索引的。Customers这个数组的b inex X杠。写完了就是我们整个的过程,这写完之后的话呢,我们来看这个测试类。第四个电子bank。复制。未来。这个改为三。
45:02
这。不来。对,代码去掉。加包。Control shift o导包。第三里边写完。不是吗?有一个半,然后什么加一个人吧,半点爱看谁呀?跟你。嗯。密斯,第二个再加一个人。欧文布朗特。我们。CTH。Control下。
46:01
嗯,Sorry。Him。下一个呢?阿利做了是吧?Mar。走了,写完或者一个遍历访问一下。这就是我们的这个结果在这儿。写完了,到目前的话呢,我们讲讲这个业务还不是特别复杂,但是对前面的这个知识的复习其实是。很好的,大家还是把这个程序看一下是吧,一会儿我们把这个把第四个的这个原理来说一下,就是说它是怎么样加的,你可以先看一看。F9,我们来搞一下吧,最后一个。嗯。双击放诶。
47:00
这个bank呢,是这样的是吧,在我创建这个bank对象的时候。是这这方他长啥样啊,这里边会有一个customers customers是什么?是嗯。是十个长度,最开始的时候它是这样画一个图。我创建这个对象的时候,它会这样的。还是有一个对内存。好。对吧,我们一行行看哈,在我写这个代码的时候,我们看这。这一行他会干什么呀?刚才学了是吧。这一行代码,实际上它会执行的是。放弃吧。只要是执行是不是他呀。
48:02
太长了,这个我写成五了哈,因为一会儿我画图不方便,这个。过来。在往在这呢。看这来不解,他也不是他吗,是吧?过来。哎,这是构造器里边这个代码的样子。好。他会干什么呢?他会这样说呀。我B本身你看B这里边这个属性是不是就有两个属性啊,一个是customers,一个是number of customers OK,那这个时候的话呢,有一个属性,我们这块我们这样写呗,画一个图。就是就是我们所谓的这个半个对象啊。这就是bug对象。啊。
49:10
好啊,这就是这方对象,那么我要是这样一拗的话,怎么样呢?啊说啊这个会指向它。B会水相差,这个倒挺好理解的,这里边呢,Bank里边有几个属性啊,有两个属性,其中有一个属性叫number of customers。就是这个呗。我才创建的时候,才创建的时候这个值是几啊。一直是。是零吧,开创建的话,你这么一扭的话,这个值我们平常没负过呀,这个值就是。零。这个值说白了,这个值是几呢?这个就是零。默认值嘛,是吧,这个值我们写个冒号吧。冒号这个值就是零。好了,那下一个不一样,下是不是还有一个呀,还有一个什么呀,还有一个卡斯吧,卡斯这块你看我这么写完之后的话,卡是不是new是不是new customer啊,这个时候这个情况就是它有五个。
50:12
还有一个卡特莫斯的一个数组卡数组我们这么画。这么画吧。嗯。浅颜色的没有吗?哎,然后呢,这里边什么呢?它有五个customer,整个整个这个属性叫customers,其中里边有五个customer,我们画一下。分别是什么呢?分别是。Customers customers。零。
51:00
回回我们知道我要是抬抬创建的这个卡零应该应应应该指向什么呀。啊,我查到里看应该用什么呀。CTRLCCTRLV2个CTRLCCTRLV。四个。这样的吧,是吧,其中这个是。一游。二。三。这个是。四啊,一开始的时候,我写完这一步的话,这个实际上它是不是不指向任何空间啊,是不是闹啊,我这样写完之后的话,这通道啊,它不指向任何空间,好了,那下一步的话呢,我们我们我我我们接着看下一步,下一步你看啊,写完了,写完之后的话呢,我们要写这样写这样的一步过来,写哪个呢?就看这一个就可以是吧,叫爱customer,我这么一爱的话,都怎么做的,看一下爱customer。
52:17
哎。看这一个啊,后面道理一样来。哎,我有这样一行代码。哎,我说哎,我要艾特customer,我这么一艾特的话,于是我们看执行的是什么呢?我点它来,你看执行的是这行代码。有点多了啊,放这吧。好了,哎,我这样一写的话呢,这个代码。执行实上它怎么办,我实际上就是在我这个堆内存里边创建了一个卡通的对象吧。
53:12
啊,卡特对象里面有两个属性,一个是真的,一个是一个是史密斯是吧。看谁呀,看这个吧卡看是不是啊,有三个属性框没写吧,框没写,所以说这里边的话呢,我们可以认为它有几个属性加上分别是。First。First name。挨打吧。长一点。好了,这个这个这个值是什么呀,这值应该是我们传入的泥吧。再来。还有一个叫。Last name应该是谁啊,史密斯啊?
54:01
最后一个这个我靠还有一个属性吧,你看我们这个还没用呢哈,这个不是他还有一个属性,我靠呢,换现在这个值是什么呀,是不闹啊。应该是这样。好,写完,这就相当于什么,这一步我创建了一个对象,然后呢。然后看哈,然后我是让什么让customers这个number number customer开始的时候是不是零啊,那我就是让这里边儿的第零个元素指向谁。是不是指向他呀?看懂没?哎,就是这一步。像他。一个搞定了,一个搞定了好了,我这样一一指完之后是个什么情况,我这样一指完之后的话。我这样一指完之后的话,那实际上我这个值,你看我这个值是不是是不是加加了呀,下次下次你要再用的话,这个值是几了。
55:00
是不是一了呀,下次你再用在哪呢?在这呢,我又写了一个。这。叫欧文布朗特,哎,我又写了行代码过来。我又写了一行,我又写一行,我们放底下。啊,这一行能干什么呢?它将在创建一个对象。Control。CTRLCCTRLV,它将又创建一个对象,就是它。当然了,这个代码就。是吧,就是这么意思吧,是吧,好了就说下,不过这个名叫欧文。这个叫。嗯,OK,然后的话,这个时候,因为我第一把用完之后,这个指数变成一了呀,然后怎么啦,然后。
56:00
它指向吧,它指向的是它好了,你如此这么一加的话,这个半个里边,我这个对应的这个元素是不是有值了,这就是整个内存的执行流程。好了,那今天我们讲的这个B的这个练习的话呢,就到这儿,今天的作业就是把这个都。务必得写一遍是吧,然后不懂的明天可以问,你要是不问的话,你就认为你会了。然后我提问的时候,你就不许答不上来。好吧。
我来说两句