00:00
好,那么这个内容的话呢,我们就说到这儿了啊,然后接下来的话呢,我们看一看这个课后的这个练习题了啊,首先来看第一道问题哈,说呢,修改方法重写中的这个练习二啊,这里边有个case,呃,这里边有个employees这个方法啊这个方法,呃,那现在呢,我们要求呢,在这个子类的这个方法里边呢,首先调用负类中的个方法,然后呢,你再输出这样的一句话。这块我们把上边的,嗯,是这个问题啊。诶,把这三个呢,CTRLC啊,咱们再粘过来,哎,放到这儿啊,然后呢,我们。在kids这里边儿来做这样的一个修改。啊,这个我们把它呢就删掉了啊。好,这个修改的话呢,是针对的这里边儿的这个employee的这个方法啊,所以在这里边呢,首先呢,我们先去调用一下复类中的这个employee的这个方法。哎,然后调用完以后呢,以后的话呢,然后你再说一下下边的这句话。哎,就是这个意思啊。哎,这样就可以了。好,这呢就体现了我们在这个诶此类当中调用负类中被重写的方法,诶就这样的去操作啊,回过来这个我们这块呢,去调一下这个employed。
01:07
啊,这个我们在最后呢,这块再。再打印一份啊。通过这个kid呢,第二啊,第employee的这个方法,主要我们就看这啊上面这块呢,其实就哎就不关心了,就啊。啊,Run一下。那这时候呢,诶这呢是掉到这个负类里边的,那这个呢,是它里边又加了这样的一句话啊,这就可以了啊行,这个呢题目就做完了,比较简单,然后看第二道题啊第二道题里边呢,我们说在这个圆柱里边呢,咱们修改了,呃,这个负类呢叫圆,它里边这个求面积的方法,我们改成叫求表面积了。然后这呢,基于我们呃,这样的一个场景,我们在诶,比如说求体积里边呢,可以考虑用上这个super。啊,是这个意思啊,把我们前面写的这个重写的这个题目拿过来。重写的啊对,在这儿呢啊,把它CTRLV粘过来好,那么我们来看这个圆柱啊,这个圆柱的话呢,我们有一个叫求呃体积,还有一个呢叫求表面积。
02:04
啊,这呢是我们现有的写法,哎,我们现在说呀,如果呢,这个求体积的话呢,我们就要底面积乘以高。那这个底面积呢,因为我们在这个里边子类这块已经给重写过了,咱们当时说过是没有办法这样去写的。哎,咱把上面这个给他先也注释掉啊,哎,没法这样写,因为这个时候呢,认为你是成求表面积了啊,那如果说呢,这块就是还是叫底面积的话呢。哎,你就修点一下是不是就可以了。啊,此时呢,还是我们圆里边那个求底面面积的那个方法,然后再乘以高。就可以了。诶,那这块的话呢,这个就这么着是吧,这个就不用改了啊,所以这块我们呃微调一下啊,你就不用自己呢在这儿去写了。哎,然后具体这个呃,求面积的这个结果跟原来也是一样的。哎,这个都是正确的一个情况啊。行,这个呢,就结束了啊。好,然后呢,我们来看一下下边这个啊,这个呢,稍微的会复杂一些。
03:02
啊,这个题目呢,稍微的就长一些了。啊,看看这个啊,这里边呢,首先提到这个叫account啊,这是一个账户里边有相关的属性啊,有些方法,然后做这个存钱取钱的这样一些操作啊,这呢是一个问题,然后第二个问题呢,诶,我们提供一个看到一个子类了啊,这个子类呢,表示的就是呃,像信用卡一样啊,可以透支了,里边多一个这样的属性。然后呢,你去重启一下这个微这个方法这样的一个行为,然后最后呢,也是做一个相关的测试。那这块我们先来写上面这个第一道问题,第一道问题的话呢,我们先创建一下这个account。那这呢是他提供的相关的这种,哎属性的这个信息,哎,这个我们就放到这儿啊。好,新建一个。康啊。嗯,这里边儿呢,写的已经比较清楚了,咱就直接来了啊。Int型的ID。哎,大型的balance。好,这个呢叫double类型的,哎,叫年利率啊annual。
04:03
Interest。啊rate啊,这个呢,要不好理解呢,你写上啊叫年利率诶可以了啊好接着的话呢,我们去提供一个构造器,把这三个属性呢,在创建对象的时候呢,做一个初始化,那直接我们alt加ins塔啊扩大器选中这仨OK一下,哎,这就搞定了。哎,那希问一下啊,你看这块我啥也没写,相当于上面是不是有一个他呀。哎,对的啊,你注意这个事儿。好,然后呢,接下来呢,针对于我们这三个属性啊,三个GET3个set没问题,这个咱们也直接自动生成了。哎,选中OK。这个真快是吧。然后接下来看下边这个啊,呃,还剩仨这个呢,叫获取一下月利率啊。哎,那叫public。月利率啊,Get monthly。这个interest。哎,这样。好年利率我们知道了,月利率呢,其实拿这个年利率呢,除以12就行是吧。
05:04
同A,是这样算吗?嗯,不是复利哈。哎,咱们往银行存钱的话,都不是复利啊。诶复利呢,就是你比如说你存了100块钱,第二月呢,变成102了,啊102呢,又作为本金呢,诶去存利率,这叫复利。那咱这不是这两块钱就给你单拎出来,这就是利率,还是拿100块钱去,呃,利息啊,还拿100块钱去参与这个这个这个存钱啊,就是正常除以12就行。好,这个呢是月利率啊。诶获取月利率,哎,接着啊,接着就是这个存钱取钱的这个操作了。Public。这呢,是个word啊,With Joy。嗯,是要取这么多钱。哎,Amount这么多。好,这个取钱的话呢,我们看他这个输出的结果上有没有一些特别之处啊,要调他诶提款这么多打印余额啊,看一下他这个调用以后的这个情况吧。
06:05
呃,如果呢,你要是这个余额不足呢,它会显示呢,就余额不足了,嗯,要不的话呢,取了钱就取了,他也没有一些输出信息,行,那咱就知道了啊。啊,那这块我们就直接做这个判断,说如果呢,这个balance呢是大于等于amount。那这个呢,就能取啊减等于。Amount,哎,这就可以了哈,那else的话呢,就相当于是钱不够。哎,我们就说一个叫余额不足。诶这么着一下就行,诶像他这个呢,就取了钱了,哎,这个是存的钱应该是啊,就是你要是呃能取够的话呢,这个就取了,他也没有什么说取款成功啊,也没写没写,咱就也这么着了啊。好,这个呢是取钱。嗯,取钱的这个操作啊,这个呢,Amount呢,就是我们要取的这个钱数啊。好,接着。接着这块呢,叫存钱。
07:02
啊,Deposit啊。哎,Double型的。哎,这样啊好,那这个存钱的话呢,我们也判断一下啊,说如果呢,你这个amount这个你不能是负的啊,诶大于零,哎在这个情况下呢,我们就直接呢去存钱了,诶balance加等于。要骂他。啊,这块也没说说这个存钱成功啊,那咱们就也就这样的处理一下就行啊。好加上一个文档注释,这个呢是存钱的操作。哎,要存的额度啊。可以了啊好,那这个呢,咱们就写成这样了啊,这个呢就结束了啊,结束以后呢,下边有具体的这个测试,那咱们测一下啊。哎,康的一个测试。嗯,来调一下这个需求啊,在这儿写的。哎,CTRLC。哎,回过来啊。哎,站到这儿。哎,首先呢,写一个这个测试,在程序当中创建一个账号余额利率,哎,是这么多的一个account的对象行,先把这个做一下。
08:08
哎,首先我们就声明一个叫account。哎,New一个哎account啊好,那么在这个位置呢,我们需要呢,去写这个构造器了啊CTRLP一下参数呢,有这样的三个对应的就是我们这里边这几个情况啊1122。哎,2万块钱,哎,0.045啊,这个利率现在没这么高是吧。嗯。对,现在已经很低了啊好这呢,我们就把这个账号账户呢,就创建好了,然后接着的话呢,通过它点,哎,咱叫V字照取3万块钱。哎,显然呢,这个不够啊,呃,希望呢,他打印的不就是这个事儿吗。啊,然后呢,取完以后的话,你打印一下你现在有多少钱。这个呢叫您的诶账户余额为,诶这块我们来一个诶点get一个balance。
09:01
啊,这呢,就相当于我们这个balance属性的一个概方法啊。好,这就完事了,然后接着的话呢,我们再取两千五啊,再取2500。呃,两千五啊。好取完以后的话呢,接着我们用存钱的方法呢,存3000。嗯,Deposit啊3000诶这样就可以了,好最后呢,打印一下这个余额,余额的话呢,还是这样子。哎,这么着啊,然后最后呢,再打印一下这个月利率。啊,这块叫啊月。利率为。哎,通过我们这个账户呢,你再去咱们有个get monthly interest。哎,这不是在这里边呢,直接就让这个年利率呢,除以12啊得到的啊。好,这个呢,我们就写完了啊。哎,写完以后呢,我们来测试一下,看这个结果呢,是不是跟他这个是一样的。好,第一个呢,说余额不足啊,余额不足说您的账户余额为啊,这个3万块钱呢,没有取成,就还剩还是2万,然后接着的话呢,我们是取了呃2500,又存了3000啊,就变成2000,呃20500了。
10:08
啊,这就是余额啊,月利率这么多。可以啊。行,这个还可以是吧。这里边儿的话呢,其实没有明显的咱们去使用是不是super这个关键字是吧。OK啊,然后接下来的话呢,在这个里边就体现了。来,我们看这个count。说呢,创建一个count,它的一个子类叫做check count表示呢是可透支的了,有一个属性,哎,还有呢,去重写with照的一个方法,好,我们看一下啊。哎,这个呢,我们叫做check account。哎,首先呢,让他呢去继承于哎account,哎就这样写啊。好,你看我写完继承以后呢,我还啥也没干呢,这块就报错了。报错的话呢,你记着看一下这个错误信息啊,你看它这写的是什么。
11:00
诶说没有一个默认的构造器是吧,是可获取的,在我们这个account里,诶在你这个类这个叫account里边。嗯,什么意思啊。没有空调构造器是吗?没有空调,空调器为啥就报错了呢?哎,对的啊。诶,你看啊,这个呢,大家在写的时候呢,以后也会出现类似的这种场景。嗯,看这里边知识点解释,首先我们在声明一个类之后,没有显示写构造器的时候。它会默认有一个空餐的构造器。哎,这里边儿首先有构造器哈,是空餐的,那么我们也说了说,呃,任何一个构造器的首行。啊,你要么呢写这次清单列表了,要么呢就是super了,咱现在呢,构造器都没写,那肯定默认就super空了吧。而你这个负类呢?咱们就根本没有提供一个super,哎,就是空仓的过道器。所以呢,他在这块呢,不就报错了吗。哎,那么怎么解决这个问题啊。
12:04
对,其实应该是有两种方式吧。哎,第一种就是你给这个负类呢,提供一个空间的构造器。比如我这块呢,就写一个叫count。看就这么着是吧,这个写完之后的话呢,我们回过来,诶他就没事了。啊,因为呢,你默认呢,是一个空仓构造器,空仓构造器呢,首行又掉负类的空仓了,诶这块我有。就没事儿,哎,这是一种方案啊,现在呢,假设我就不想给你提供。那那怎么办?对,就是你肯定要调浮力构造器了,这个是没问题的了。啊,那你调的话呢,那你既然没有空餐的,那你就调那个有餐那个不就得了吗?诶就是这样啊,所以呢,我们把它那拿过来,诶就比如说我们这边就选择一下第二种方案啊呃,那你在这里边写的话呢,咱们可以呢,在造此类对象的时候呢,顺便把负类的这几个属性呢,也给它初始化一下。你把它就扔过来是吧,这个位置你直接就super一下ID balance annual interest rate,这样是不是就行。
13:05
哎,这就可以了啊好这呢,比如我们就选择这样一种方式啊,这个大家注意一下啊。啊,这个呢,目前不报错了,我们再回过来看一看它里边都有哪些东西哈。诶,来看这儿了。嗯,这个呢,提到了它有一个属性啊叫overdraft,它呢表示叫可透支的限额。呃,回过来啊,在这儿我们去声明,哎,Private double类型的它。这个呢叫可透支的限额。哎,就是你能透支多少钱的意思啊。嗯,然后呢,他这块呢,没有提这个构造器的事儿啊,那咱们自己呢,去提供这个构造器了,那不妨呢,我再提供这三个,三个呢之余啊,你要说我们再提供一个那也行。或者你就直接呢,在现有这个构造期的基础上呢,你给他加一个也可以哈。哎,我们逗号一个,诶叫double部型的,哎,Overraft是吧?哎,然后呢,调负列的构造器呢,把前面这仨呢初始化,然后最后这个属性呢,你自己来。
14:01
哎,这样就可以了啊,好,这块你要愿意写俩你就写俩啊,你说我就写一个,你把这个去了也行啊。好,那么构造器呢,我们就处理完了,呃,那么接下来的话呢,关于这个属性呢,咱们也给大家写一个盖塞的吧。那就这个啊,OK一下,那么副类里边的这些属性。诶,这里边呢,已经写了gas了,所以对于我们这个此类来讲呢,直接直接呢可以拿过来用啊,就很方便了。啊,那么除了这个概塞的方法之外呢,还有这个就是获取月利率呀,这个取钱呀,哎存钱呀,哎这些方法呢,也都拿回来了。哎,但是呢,对于我们这个可透支的这个账户来讲呢,这个取钱的方法呢,不太适合他了。哎,所以我们要做一个重写啊,下边就告诉你怎么去重写了。哎,这呢给了一个规则是吧,这个规则呢,呃,大家呢,你写的时候可以参照它,我这儿呢,比如说就不参照它了,咱就直接来写啊。首先呢,你把附列当中的这个方法的声明啊,我们先CTRLC一下。拿到咱们这个子类里边,哎,我就放到这儿了。
15:02
哎,这么着啊,在这呢,就叫重写。哎,这个我们写一下啊。哎,这个呢,我们是,诶针对于这个,诶这个可透支的这个账户啊。哎,他的一个取钱的操作。诶OK啊好,他那要取这么多钱,那这块我们分析一下啊,这个钱啊应该怎么取。啊。这个对,这个咱们先看一下这个常识吧,假设呢,你现在有一张信用卡啊,这个信用卡里边咱们知道呢,本身也确实能够存钱,假设呢,你自己存了有2000块钱。然后呢,这个信用卡这个透支的额度呢。一般多少?20万,那不可能啊。一般的话应该就是大家上学的时候能有5000。差不多是吧,然后你要工作以后的话呢,这个可能说诶2万是吧,诶5万。也差不多也就5万了啊,你要说太高的话呢,这个你得有很好的这个信誉是吧。
16:01
或者大家以后呢,有钱的时候,你把这个账户里边上来整他50万是吧,诶这个银行就给你打电话了,说诶我们这有相关的一些。啊对理财的一方面,另外呢,我们这个你是大客户是吧,我们可以办一个金卡是吧,那你比如说你坐飞机啊,我们有这个VIP的那个屋子是吧,那你可以,那比如飞机还没开呢,你可以先在那歇会啊。等等等等等,包括利率等等都会升高是吧,这属于大大客户的啊,50万以上的这种啊。但是你这时候呢,你得这个钱,你得不能说我今天放进去,明天我就拿走了,那银行也不傻是吧,你得基本上稳定在这有50万以上的这个额度。哎,你稳定在这五十五十万呢,你肯定不止在这会放50万是吧。OK啊。行,哎,这个就是这样的啊,一说到这儿的话呢,其实呃,好多时候我们去银行的时候呢,前面这些都是普通的柜台。呃,以前的时候呢,就是你要像去这个工商银行呀,农业银行一排队排的特别久是吧,以前的时候呢,在这块有个叫VIP。
17:00
你发现普通的这块有俩VIP呢,也有俩VIP就没什么人。呃,来了就能服务是吧。大家就特别有意见啊,确实我感觉也不太合适是吧,后来怎么办呢?人家就把VIP呢,干脆整到一个房间,直接就去后边了是吧啊,环境更好是吧,省得让你看到你还难受啊。嗯。好嗯,这块我们再拉回来啊,这个呢,你里边是2000块钱是自己的,然后呢,有5000块钱呢,是可投资的,现在你要取3000块钱。嗯,你按常识来讲,我们是不是得先把你自己这个先取完是吧。呃,然后呢,剩下的1000不够的,你再从你这儿去取啊。一般都是这样子的,行,那这块我们也按照这样的一个思路来哈,这个首先啊,我们先判断一下。这个你要取的这个钱是这么多,先看看你自己的余额够不够。啊,这块你注意,我们balance已经不好使了。交不了了是吧。那就盖balance吧。那么首先呢,看一下这个get balance是否是大于等于这个。Out的。
18:00
如果要是大于。就直接从你自己存的这个钱里取就行是吧。好,那这怎么写?啊,Get。谁谁刚才说的盖balance?啊,晒balance。下一代balance。然后呢?啊,Get balance减去一个是这样是吧。嗯,这样到时候也行,比如说你现在呢,还是那意思啊,你有2000块钱是你自己的,可以透支那5000,现在你就取1500。啊,相当于这块呢,就2000减去1500,把这个账户的余额呢,就改成500了。但是一般情况下呢,其实你账户这个事儿呢,呃,有了这个账号,呃,有了这个账户以后呢,这个get倒是没问题啊,其实一般的这种set呢,通常是不是就你不能说你哪天看你这个账户不爽了,重置一些余额是吧。啊,那不行啊,你要是有了这个钱之后呢,你后续呢,只能是往里边去存钱取钱,来体现这个钱的变化是吧,所以这块这个方法呢,我就不写了啊,不写以后呢,你回过来这个呢,其实就不能掉了是吧。
19:10
所以呢,要是没有的话呢,你就不能写,要有啊,到时候能做,那现在没有了怎么办。有没有同学想这样写啊,说我get balance呢,是你本身账户的钱数,那你你又不是说够吗?那我就直接就减了,减了以后呢,剩下这个钱呢,我就直接呢又get balance呢,这么着一下。这个行不?啊,对,是报错了是吧,对我这个问题多余问啊。这个为什么不行呢?对,就是这样写的话呢,这显然的这个编程的这个语法呀,还是不太清晰的哈,就是你通过get balance呢,只是获取这个数,拿到一个数,你2000块钱啊,2000呢,减去你的1500,减完以后呢,结果是500。我这也是个数。
20:00
我这2000,你一千五复制给复制给2000,这这啥呀,这是吧。你赋给个变量型,但那个变量你现在不是拿不到吗?这块呢,看到的只是一个值啊,所以这样写是错误的啊,这要注意。啊,本来可能没想到,然后呢,写了之后呢,发现诶。还可以这样写是吧?反而倒不理解了啊。哎,别这样啊,那么正确的应该怎么做呢?对啊,这块的话呢,你其实你要取这个钱,那我们直接呢,就调你负类中被重启的这个方法其实就行了是吧。Amount,这就可以了吗?但是这块一定要小心啊,修波点可别去了。一去了成自己到自己在这成死循环了是吧?哎,这个啊,啊,注意一下。好,这是我们这个if的操作了,然后else if。啊,这个呢,是你本身的余额就够,现在的话呢,就是余额不够了,余额加上你这个透支的额度一起是够的。啊,就类似于说你get。哎,Balance上边这个要不满足了,哎,走下边,下边呢,它再加上咱们的这个叫overdraft是吧,它俩合在一起是够你这个要取的这个钱的。
21:08
好了,那这个要够的话呢,这个怎么取呢。先把你那个账户的钱取光是吧,那就相当于我们修复点为呢,取光取光怎么着。有多少取多少。有有这么多是吧,这就取这么多取光了啊取光以后,那么接着的话呢。差额。哎,这呢,是你本身要取的钱减去你get balance呢,是不是差额呀?这个差额呢?是不是从我们这个overdraft里边去取啊。是不是这样子?他说,哎呀,已经整不明白了,那你整俩数。哎,账户2000块钱可以透5000,你要取3000。哎,这儿呢,就先把这2000呢先取光。是吧,然后呢,这不是3000减去2000还剩1000是吧,然后呢,从5000里边呢,再减去这1000。
22:04
这样写有问题吗?有同学说有问题,有啥问题啊。怎么着?啊,你看他这样说啊,他说这个get balance呢,这拿到2000了是吧,我为兆呢就取光了。他说再去get的时候呢。就成零了。哎,说的有道理是吧。哎,这个问题呢,注意诶,大家很难发现啊,但是它就是一个问题。你看你上面把这2000块钱取光了,取光以后你再get balance,这不是零了吗?你要取3000块钱,这不就成了3000减去零了吗?你又从你账户里透支额度里边又取了3000。还还没还没返过来啊,你有2000块钱,只能透支3000,呃,收透支5000,然后你要取3000。呃,其实结论呢,就是这块取光了,这个还剩4000是吧,但是现在这个写法呢,就是把这个取光了,然后呢,从这里边呢,又取了3000。
23:06
透支里边呢,剩2000,这个还没了。成这样了?啊。那。对,需要做的事儿呢,你就把这俩交换一下就行。诶就是说这个呢,是符合咱们的认知的,你说我先把我这个账户的钱先取光,但是你在这儿的时候呢,你注意这个反过来了啊,诶我先看你这块呢,有多少钱,有2000。哎,你要取多少,取3000。哎,3000的减2000剩1000,然后从5000里边花掉1000。上4000,然后再把你这个账户的这个余额全取光。就是你要是把他俩一颠倒,这个再盖不就没了吗?啊哎,这个注意一下啊,所以这块呢,特别容易出错。这个错误的话呢,你只能是通过后期测试,你要没发现啊,通过测试才能发现。啊,这个完了以后呢,接着是一个else啊。那这显然呢,就是不够啊。
24:01
这个我们看调理结果说超过可透支限额啊。回到这儿啊。诶超过可透支啊限额,诶这样就行了啊好,那么这样的话呢,我们把这个方法呢就写完了,那至于说这个存钱的话呢。存钱的话呢,我们就不用重写了啊,直接往你那个账户里边去存就行啊。嗯,好了,这个就完了,完了以后呢,我们来看一看它这个测试啊。测试在这儿。这样啊,CTRLC。回到回到测试,我们新建一个类。新建一个类啊。Check。诶,Account它的一个测试。那这样啊。你看这样啊。这个再往前转一下。
25:00
好了,哎说呢写一个程序,然后呢,在这里边创建账号余额利率,哎,可透支额度啊,说的都很清楚啊,首先没方法进来啊,这个我们叫check account。嗯,Check account,哎,New一个啊check account好,那这呢CTRLP一下啊,这有两个构造器了啊,哎,这呢提到了有四个参数,那我就用下边这个了。ID呢,11222万。啊,2万啊,这个0.045,然后呢,透支5000,诶这样就行了啊。好,创建好了,接着我们通过这个叫拆count的这个对象点微取5000块钱。哎,那这5000的话呢,实际上实际上呢,就是从你这儿取的了啊。哎,再打印一下你这个账户余额和可透支的限额,哎,打印一下,哎,这个看他的参照的一个结果啊。哎,回过来,哎这块呢,就。呃,您的账户余额。
26:01
哎,这样啊,好,这个呢,我们就直接呢去调我们这个check count点,还有一个呢叫get balance啊这就可以了啊好接着。这个您的可透支额。哎,这么着,哎,加上我们这个check account,第二这边我们一个叫overdraft,关于它的一个盖方法。这样就可以了。好,那么接着的话呢,再去叫取一万八啊,取18000,然后再打印,其实呢,就跟它一样啊,CTRLC粘过来。18000。这样啊,好接着打印,然后呢,再去取3000块钱啊再来。诶,3000块那就可以了啊。好,然后呢,就完事了是吧,那这块我们来看看这个整个的一个效果啊。好,Run一下。诶,这就出来了啊,现在呃,第一次我们这块取完钱以后,说账户余额呢是一万五啊一万五投资额度呢5000没问题啊,第二次呢,取这个一万八啊,一万八这块我们把这个呢就取光了,然后这块呢,可透支呢是2000,然后再取这个3000啊这个就不够了是吧。
27:06
哎,就剩可透支的就2000块钱了。就可以了。行,那这块大家呢,去体会一下啊。好,这个呢,我们就说到这儿啊,这个就我们这道题目啊,在这里边儿呢,我们用到的啊,诶说在子类重写的方法里边,我们调用负类中这个方法了,被重写的就用super了,然后在这块呢,我们也用了一下这个super了。啊,其实呢,基本呢,在代码中使用的也就这样啊,不是特别复杂啊,那么关于呢,我们讲的这个笔记呢,大家稍微的去体会一下,尤其构造这一块,呃,稍微的有点逻辑呢,哎,很紧凑哈,哎,稍微的看一看。诶,这个完了以后呢,关于我们super这块呢,有两个,呃,这个企业的这个笔试的这个真题哈,来我们看看这个真题大家诶。好不好做啊,首先看第一道。啊,这个题呢,是这样的啊。嗯,我有一个类A,有一个类B啊,A里边呢,写了一个构造器啊,又写了构造器。
28:00
这块有个Z。哎,这块咱们这么着吧,大家怕这个不太方便看哈,诶我呢把它盯一下就放在这儿了啊,然后再往下呢,这块有一个类壁啊。这样写的。他这样。呃,一个类A啊,一个类B啊,我们直接呢就哎我就这样了啊,上面是A下面是B,好,然后这块呢,我们就直接呢去拗一个A,然后里边呢,放了new了一个B,问呢,我们执行的时候呢,这个打印的结果是什么?哎,注意这个要执行的时候呢,我们先得去拗这个B啊。诶,把这个拟完以后呢,把它作为一个13呢,放到我们A的这个构造器里边,所以呢,先有这个啊,所以这个打印结果应该是先有个B是吧。哎,这个完了以后呢。是不是掉它了啊,掉它的话呢,这个注意上来是Z啊,所以先走到这是A是吧,然后再接着呢,是不是回过来。那在AB吧。哎,所以呢,就是BA ABB来跑一下。
29:03
哎,BA ABB没问题啊好,然后这一题呢,其实它就这样考的,然后呢,我这块呢,是又给他加了一个。写法啊,你看这个呢。这个呢,是把这个B这块呢做了一个调整,B这块呢,我让它作为A的此类出现了。好,那么此时呢,再来看。上来呢,就先拗个B是吧,用的是它。有同学可能会说,这跟刚才也没区别呀。有区别。哎,别忘了,这里边儿是不是有个虚窝空啊。诶,所以呢,我们上来呢,打印之前哈,先要调到这儿。所以这块我们要先输入的是不是A了。对,然后A完了以后呢。哎,这个就完事了,然后C空直接完了,是不是B又出来了啊,哎,这个呢,就把这个打印了,这个打印了以后呢,这个对象就创建完了,得到这个13呢,我们传到A的这个构造器里边上来呢,又上边了。UA了是吧,哎,然后呢,接着回来再AB是吧。
30:02
有没有同学会觉得说,诶,怎么上面这已经掉了,这个A的构造器怎么回来又掉呢?哎。该掉你就掉啊。我们这个B这时候掉的原因是因为我们造此类的对象的时候。一定会调用到富力的构造期的。咱不是说过那个刚才那个事儿了是吧?诶所以这时候呢,我们去调了一下,这个时候呢,是跟人家造B这个对象跟他相关的哈,我调了一次A,然后呢,你前面这块调是因为你造A的对象的时候呢,你用它的构造器你主动掉了,这是你造A的对象的时候你掉的。啊,一个是B对象的时候掉了,一个是A对象时候掉的,这两回事啊,所以abba ABB啊。看一下。啊,没问题啊。行,这个呢,就是咱们说的这道问题。好,然后接着我们再来看这个第二个啊,这个呢,就有点儿恶心了啊。这个有点恶心。哎,为了方便大家看啊,我这么着。
31:01
啊,这个呢,我们盯一下啊,放这儿了。啊,这个呢,是这个散啊子类。哎,这么着啊,好回过去啊。嗯,咱这这块把这个收起来,咱这就自己来分析啊,咱们看看它打印的是什么,呃,整体情况是这样的啊,发里边有一个属性,呃,赛的方法,Get的方法,赛呢这块呢,也多了一个属性,诶名一样啊。好,然后这块呢,没有重写该方法啊,这有个test方法,好了回到这儿啊,首先啊,New了一个father new个萨这俩对象啊。实际上这里边儿的这个father啊,纯粹就是打酱油的啊。他就故意恶心你的。呃,关键呢,就是你看散其实啊。啊,那首先呢,我们通过这个F呢去调钙的音符。F呢?去调get in for,这打的是什么?就爱硅谷是吧?这个F啊,它的调用的时候呢,跟这个一点关系都没有啊。
32:00
啊,你父类造对象跟子类没有关系啊,子类造对象呢,跟父类有关系啊。好,然后呢,我通过S呢去调概念in符,S呢是这个三啊,它的概率音符注意是在这儿呢啊。那么问这是我们调的这个音符啊,是他的呀,还是他的呀?那就是说是上边这个还是下边这个是吧,这个呢,咱们没有专门讲过这个事儿哈,诶这个呢,其实咱就诶相当于通过这道题呢,你去熟悉一下,其实还是叫就近原则哈。就是这个时候呢,在咱们这个内存当中,针对这个散来讲啊。这叫散了,这个对象叫S啊,指向这个空间当中,你造的这个对象,在这个内存空间呢,咱们其实有两个属性,一个呢,是你这个父类里边这个音符啊。哎,这个音符了一个呢,是你自己这个音符。哎,这两个属性的,注意属性呢,同名的是不存在覆盖之说的啊,就有俩。然后呢,你这个方法呢,注意这个方法呢,我们是写到负类的方法里了。
33:00
所以负类方法呢,他也就近哈,反正你有俩,你俩也没有什么地位,谁高谁低,只说了哈,哎,我本身这个方法我就在负类里定义的,那我指的就是负类的。啊,那问一个问题啊,你说这个方法如果我们原封不动的啊,我在散这个类里边我给重写了。诶,我这时候再去调概率因符是不是就掉的是你自己的了。哎,这时候呢,你再去调就近原则,是不是就救自己了?哎,所以呢,就打赢他了,所以这道题呢,大家还可以变得更难一些啊。好回过来,那由于呢,你腹类中没有重写呢,你就要离你近的,所以那这就是挨着硅谷啊。好,接着S呢,调test就调这个了。那这个比较清晰哈,这次点要你这次的是先去自己里边找。哎,所以这块呢,打的首先呢,是这个上规骨就出来了。然后呢,又掉super了。诶,不对,我们写的对吗。我我删了啊。冲动了。嗯,这个里边我写的这次要概念in符是吧,这个这次也好也好,你也没重写,其实指的是一个是吧,先去你自己找也没找这个方法,你找雷其实还是它是吧。
34:09
所以这个方法你调的话,本质上还是叫它,它只要调它,它离它近,所以这块都是X硅谷啊。注意都是这个。好,这是一条线。啊,一条线结束了啊,再接着看我呢通过S呢叫s in符叫大硅谷,问这时候是把上面覆盖了,还是把下边的覆盖了。诶上边嘛,你这个方法这不还是离它近嘛,是吧,那get如此,S也如此啊,所以上边这个S方法你覆盖的话呢,实际上是把硅谷给覆盖了啊,那把这个覆盖了,那我再去通过F去调盖的in份呢。变成大硅谷了是吧?哎,我不是说了这个就打酱油的吗?他恶心你的。这跟上有啥关系呢?这位同学已经懵了,是吧?这是两对象是吧?我是通过S去调的,跟F有关系吗?
35:02
没有任何关系啊,这个就是打酱油的,他就把它穿插到这里边儿呢,时不时的恶心你一下是吧。这个概率in,这不还是艾特硅谷吗?打酱油的啊,注意。啊,就是跟它一点关系没有,这是俩对象啊,诶然后呢,你这个S呢,去调概率in分的时候呢,调它,它这不是刚才那个set把它给改了吗。所以他不就叫这个。大硅谷了是吧?然后这个呢。这个。啊对,这个的话呢,是咱们说了,你这俩掉的其实还是他嘛,他刚才调不就是大硅谷,那这不就也是得。大硅谷吗?诶大硅,诶硅谷是吧,再来一个大硅谷是吧,哎,就这样一个情况啊,来我们去做一个run啊看一下。好,上面的1234是不是1234来下边这个艾特硅谷,然后下边全是大硅谷。
36:03
哎,咱们分析呢是对的啊,哎,刚才我说了,在这个基础上呢,你可以把它变得更难一点啊,比如说这块呢,我们public,哎我呃先来一个,呃,这个这个就直接拿过来呗。CTRLCCTRLV啊,我这就拿回来了啊,这就相当于做了一个重写了。这个重写完以后呢,这个事儿上下就会有变化啊。哎,我这块我光重写get了,我没重写set,加上一个set呢,又不一样了。啊,那个大家一下来想啊,我们把它加上了,你看这时候会变成什么样啊。首先不一样了啊。哎,这块,哎看一看啊,说为什么这块就变了,哎,我这里边儿加了一个get。这时候呢,仍然是就近啊,这个就近呢,就就你自己了。从上面来啊,哎,这个时候的话呢,你就他就打酱油的啊。
37:02
这个所以说跟它相关的这个都不变啊,你看这不都还是他俩啊,关键是这块啊,用这个萨,然后呢,这个还是硅谷啊s.get in for,注意get in for你自己重写了。重写了这块你就近呢,是不是就找商规股了,哎,所以这块你看它就变成商股了。哎,我我就不改了啊,注意上规五了啊好,下边这个用s.TT的时候呢,这不就跑到这来了。看一下这次点是不是就掉这个。哎,你自己这个,这不就是上鬼谷吗?哎,super.super不得上面那个,上面那调不就at特硅谷吗。哎,没问题,好,接着一条线,我这叫set in set in for没重写。没重写就还用的父类的,父类这块呢,就是改的是它。如果要重写了呢?你就改自己了是吧,诶所以你看这块又不一样啊,好,我没重写,我把这个给覆盖了,所以你在这个打酱油的不管了,然后这个呢,是get in get in for重写了,重写那调不就是上V5吗。啊,然后呢,你再去test t这块呢,呃,Z点还是自己的,那不上硅谷,哎,你要呃,Super super这个这个你不是给改了吗,这个大硅谷吗。
38:04
哎,就这个意思啊好,哎,这个大家下来你自己捋一捋啊,哎,我把这个我还就注释了就啊。好,那这呢,就是我们这个笔试题啊,看来还是有点东西的啊呃,那么关于我们这个虚克的话呢,咱们就彻底的就结束了。啊,大家呢,就是关键呢,就是掌握一下什么时候我们去用是吧,知道这个核心点,通过练习呢,练一练就行。
我来说两句