00:00
好,我先把这个关闭一下。啊,那么我们来看一下这个昨天的一个内容的简单的回顾,拿个呃,五六分钟简单的回顾一下,那么昨天我们讲的是哪些内容呢?我们打开上一次的视频就知道从哪里讲的啊,上一次课呢,我们是从封装。的注意事项讲到了特质啊,包括这里面的继承操略的复习字段,匿名子类,半生对象等等等等,那么我们简单的回顾一下,各位朋友来打开我们的手册,我定在二级,好,定在二级呢,这个就简洁很多,我们找到封装。往下拉,往下拉好,我们找到封装的位置是在哪里呢?是在这个位置,好这个位置啊,封装三大特征里面的封装。好,呃装呢,在这个地方我们说一句就行了啊,就是注意事项啊,呃封装从整体来讲是卡的,封装的这个机制和他的逻辑跟Java是一样的,仅仅是形式上发生变化而已。
01:16
怎么说形式上发生变化而已呢,大家要清楚的知道,就是在我们的开里面呢,它其实准确的讲,在它的底层其实只有private和一个public,诶也就是说他把原先的我们四种访问的控制呢,简化到两种,它的逻辑变得很简单,就说要么能访问,要么不能访问。那么访问的时候呢,它主要分成了这么几个层面,第一个,第一个我简单说一下啊,到处任何地方都可以访问啊,任何地方都可以,就是说最大的范围就是全局的吧,比如说全局的一个范围,哎,全局的一个范围,那么这个呢,就是public的,还有一种呢,就是在子类中可以访问。
02:04
子类中呢,访问呢,它是用我们的这个编译器来控制的,你写protected就行了,还有一种呢,就是私有的,私有的呢就是只能在本类和半身类可以访问,就这么三大类,然后呢,简化了它的一种封装的逻辑,那么从形式上来说呢,它也提供了很多自动的方法,比如说你不用写什么,你只需要生命一个属性,它就自动给我们提供了默认的C方法和get方法,当然根据你这个属性的这个修饰符不一样,生成的C和get也不一样,比如说你声明的是V的。那么我就只生成一个。读的方法,如果你跟是VR的呢,就是读写方法,如果前面你加的有private呢,诶它的方法的那个修饰符呢,就是public的,如果你没有加呢,它的方法的生成的这个s get方法呢,就是public的,好这个大家有一个印象哈,有个印象好这个就回回到这儿,那么紧接着呢,给同学们讲了一下继承,那继承它的原理跟Java是完全一样的,就是它的整个。
03:16
Java就是整个这个继承为什么有,以及它的机制是一样的,那区别在哪里呢?我们来看一下。OK。嗯,它的区别主要是体现在这个位置啊,就是方法的重写这一块。好,方法重写这一块,那么方法重写这一块呢,在实开了明要求重写一个非抽象方法,需要有override来进行一个明确的指令啊,明确的指令啊,然后呢,下面我们又说了一下这个类型转换的一个经典使用。这两个方法呢,在开发中我们会经常的用到,一个是is instance of,一个是as instance of,那么后面呢,同学们在写这个设计模式的时候,还会用到这两个方法。
04:05
啊,设计设计模式用到这样一个方法,好,这个呢我就不再多说啊,Is是干什么的,As是干什么的。然后呢,超累的。这个构造。那么超内的构造呢,我们直接看SC它是怎么构造的呢?它的构造的顺序啊,它是这样子的,它整个这个流程是我们这儿看看这个构造的顺序啊,执行的顺序。看这里对吧,先是完成对父类的一个构造,然后呢,再完成对此类的一个构造,那么如果你的这个腹内还有腹类呢,就继续往上面去进行追踪。对吧,这一点我们也是说过了,好,紧接着我们讲了复写字段。那复写字段有一点是一定要清楚的,就是在开里面这个复写字段呢,它其实是通过方法来实现的。
05:00
对,这点大家要很清晰的知道啊,就是说在我们刊里面,呃,复写字段,它是通过方法的重写来实现的,只要把这点搞清楚就可以了。好,然后呢,我们在这个地方回忆了一下Java的这个这个字段的一个重写,其实Java里面呢,准确的讲是字段的隐藏。这里面包含了Java的两个重要机制,一个机制呢,就是动态绑定机制,这动态绑定机制,这个动态绑定机制呢,也延续到了看里面。诶,这个大家要很清晰的知道,还有一个呢,就是Java里面它的字段,就是刚才我说的,它其实是隐藏啊,它其实是隐藏好复写字段呢,我们就聊了这些,我们紧接着讲了抽象类,那么抽象类呢,这个跟。跟我们这个呃,Java几乎一样,好,我就不再多说了,然后我们讲了匿名之类,讲了继承关系啊,布置了一些作业题,这个也不知道同学们有没有做哈,这个呢题我就不去评讲了,大家应该照着原先老师讲的Java的那个代码把它改写一下就可以了,好,紧接着我们提出了这个静态属性和静态方法,我现在找一个同学来回答一下啊,嗯,什么呢,就说在。
06:16
SC里面它是如何实现这个静态的使用效果的,换言之就是在SC里面,它的这个静态机制是怎么一回事。OK,好,我随机的抽查一位朋友,来找一位同学吧。嗯,咱们就近原则哈,咱们就近原则找一个同学叫沈勇同学来回答一下,来小沈有印象吗?你就你就随意的组织一下语言。你就按老师的套路,就当什么什么时候我们要干什么事情的时候,咱们就需要这个静态,静态的一个东西,然后在干里面是用什么来实现的,使用的时候注意什么事项就完了。
07:00
能组织一下这个语言答上来吗?好啊,小陈同学微微一笑,笑而不答,答在其中啊,我们再说一下,我们再小会吧,说这个题我们再找一位同学吧,找沈勇同学旁边的同学帮忙叫马松同学来回答一下来,小马,小马也笑而不答,打在其中,是不是感觉这个语言不好组织是吧?其实知道还是知道,但是就是不知道怎么说是吧,那就麻烦了同学们,你们知道为什么这个人的价格是1万,另外一个人是2万吗?你知道吗?就是他我跟你说啊,因为我跟他讲你你虽然说有些人说诶老师我很有才,我告诉大家啊,面试他是一个技艺术,因为别我韩老师知道,诶小沈同学和小马同学技术水平是怎么样的,我是知道,但是你对面试官,面试官第一次见你,他知道你技术高还是技术低啊。他他都不认识你,你只需要在短短的20分钟,甚至可能是半个小时,可能二分钟,你要展现出你的东西,你说你说不出来。
08:08
你即使有能力,人家就给你1万块钱,就好像高考,大家都高高考过吧。是不是有这样一类学生,平时测验挺猛的?动不动就全年级前十,一到高考拉稀是吧,一考考了个职业技术学院,有没有这种人呢?你说这种啊,你体现不出来就是没水平了,那那没办法说,你跟那个高考老师说,不好意思,我每次全年级第二第二名。你考了这本,心理素质太差,人家也不要你的。好了,再找一个同学,旁边这位同学,张国鹏同学来,小鹏整一个。对。
09:15
出现了一个。对象。是把这些青菜。一个翻身,翻身对象的一个概念。嗯。嗯,对。嗯。实力实力对象。嗯。
10:00
对的。对。实际对象,嗯,对,好可以了,请坐一下啊,不管怎么样,张国鹏同学呢,他敢说这点就很好,他其实把大致的东西说出来了,只是说的时候呢,那个语言再稍微的精简一下就可以了,其实可以这样去说,首先我们从语法层面,就是说在SC里面呢,他拿掉了sta提格这个关键字,但是为了跟Java做到这个无缝接轨呢,他使用了一个叫伴生对象的来实现这个静态的使用效果,好对第一点给答上来,第二点呢,你说一下就是在我们这个开静态的底层呢,它实际上是用半生对象是对应的那一个mo9.dollar那个静态对象来实现了一个什么呢?实现了一个对象,静态对象,但通过这个对象来实现我们。静态的使用效果就完事了,因为他这面核心,其实你说这个SC里面,它只是做了做了一个包装呢,它的核心,其实它为什么能实现这个静态效果呢?它的核心就是因为大家还知道我在这儿加了一句话,就是这个东西是一个关键,对我在这里面加了一句话,哪里呢?好,这句话是比较重要的,这个图我就不再多说了,这句话是这比较关键的一点,就这从底层看半生对象实现静态的特性是依赖于它的一个底层的静态的ban的一个model.dollar实现的,其实你只要把这个打上来,基本上那个懂的人呢,就知道你真的懂了,因为你你你说这个为什么他始终是一个呢,因为。
11:47
这个家伙是一个,所以你在调用的时候,它的属性就一直是一个了,对吧,其实这个点打上来是个核心点,好这个我们就回答到这里,好,紧接着呢,我们又讲了什么玩意呢?诶我们又讲了这个apply方法,这个用的比较多,好apply方法呢,就是说当我们去创建一个对象时,我们可以直接用这个,不要那个六,然后呢,把它放在这个apply里面去,其实通过这个apply方法加上半身对象呢,我们可以马上实现一个单例。
12:14
啊对,因为前面我们讲过,在构造期可以加一个private,我在那个,比如说我要求同学,同学们实现一个某个对象的单利,你们是不是很快就能实现。说老师这个怎么实现呢?简单说一下啊,你看啊,如果我想实现一个方法的单例,如果简单简单的来看啊,后面我还想讲,如果说我要实现一个单例的话,其实我可以很快实现single single to。OK,好,各位朋友DEMO吧,走。好,各位同学请看。那假如说我们要去实现这样一个单立的话,我这里有一个dog,假设我始终只能有一只狗啊,然后这边呢,我上来过后,先把它的这个做成一个私有的。
13:01
做成私有是不是你溜就不不能溜了吧,啊,当然我我也不给你提,我也不给你提供别的方法,是不是你就玩不转了呀,你玩不转玩不转怎么办呢?你看啊,这个时候我们假设要实现一个单立啊,这地方我就简单说一下啊,后面还要详详减啊实现单立。单利单利,那现在你要去搞一个狗出来啊,不不创建一个狗出来啊,呃,你就遛一个,你现在遛不出来了,你遛不出来,你像这个地方看一下。好,我们来看看这个地方运行啊,我们运行。对,我们运行直接就给你报了一个错了,对吧,直接就给你报错,因为他不让你,因为你加了一个private,如果我们把,诶,如果我把这个打开,当然你是可以创建的啊,如果我们把这个打开,你创建是没有问题的,你要这样运行呢,它没有报错。对吧,这这是OK的啊,这个是OK的,但是我们加了一个private,那就把你这个构造器这条线给你挡住了,那怎么办呢?诶怎么办呢,非常的简单啊,还把这个这个怎么做private private。
14:10
With。好,那怎么办呢?OK,我们充分的利用我们的半生对象,哎,同学们还记不记得我们讲过在半生对象里面可以使用到我们对应的半生类的私有方法和私有属性,讲过这个吗?诶,那就用这个东西了,那就go完事,那这个时候是不是就异异常的简单了,咱怎么怎么做呢?咱们写一个公开的apply方法。是不是这意思,诶这个地方呢,我们就可以去创建,然后这里面加点东西就行了,比如说在这里面我们去判断你是不是已经有这个实力对象了,有的,那么我把这一门整一个这个对象就完事,看啊来走一个va va,比如VVR啊,假如这个VR假如啊,这边有一个dog。
15:02
啊,这个有一个va,我直接实力画它啊,实力画它啊,比如说这有个VR。VR,然后呢,我们这样子做,我们这样子做,比如我这有一个dog啊single single dog啊single dog,然后它的类型呢,我们就叫dog。对吧,就叫dog好,初始化给他一个值啊,初始化给他一个子空,对好那么这里面呢,我做一个小小的判断啊,做一个判断,怎么判断呢?诶这样写,如果如果这个single啊,如果这个single它等于no啊如果等于no对吧。如果等于no,那么我们就return,或者溜一个dog出来,溜一个dog出来,那么否则,诶,那么做完这个以后呢,我们直接将这个dog返回即可。
16:02
哎,对,这个要你要把它给他啊,给他就行了。溜一个道给他,然后呢,做完以后我们来升个道给他返回,那假如这样做完了以后呢,同学们看六是肯定走不过去的了啊,六是肯定走不过去的,下面呢,我们直接这样子做就行了,怎么做呢,咱们是哎就apply就dog一个啊方法。好,呃,那这个时候呢,我们来执行一下代码,多少个OK多少个,好到我们来运行一下代码。诶,我们来运行一下代码,我们发现呢,这边有一个do,好这个时候你因为你这个是VR了,这个do呢,也不能改是吧,你改不了嘛,因为它是VR的,那如果说你要用六也六不出来,如果你再去获取一个,大家看,假如你再获取一个DO2,你说我还用这个do。对吧,你还有一个dog,那么我们看这两只狗它们是不是同一只狗,哎,同学们看一下这两只狗是不是同一只狗,走一个这个代码。
17:02
Okay。好,我们发现这两只狗呢,其实是同一只狗是不是,哎,这很很很简洁的,就实现这么一个单立,很简洁,就实现这种单立,Very very easy对不对,那你如果实像在Java里面呢,你当然也可以实现,而你还要加一些其他东西,那我这很简单,就实现一个单利,就是充分利用了我们办生类和办生对象的这么一个关系在里边的好同学们,那现在呢,我们这个,呃,这个说完了,下面我们又讲了一下接口,那接口呢,我们是当当时怎么讲的,就是说接口里边大家回忆一下,就是Java这个没变成treat了啊,里面有很多基本的语法,我就不再一个念了,那么昨天我们讲到哪里呢?把这个特质的一个基本使用和它的一个再说明做了一个讲解,是这意思吧,好,我们回顾就先到这里,那么关于这个特质的一个底层的分析图呢,大家要有个印象啊,大家要有个印象,其实呃,就是根据你这个脆。
18:01
就是你这个里面如果只有抽象方法和含有抽象方法啊,又含有这个非抽象方法的话,它对应的这个内容是不一样的,这个图呢要有一个基本认识,好同学们,我们先回顾到这里。
我来说两句