00:00
好,这个双11刚过不久是吧,现在一说到双11呢,都没有这种悲伤的感觉了。啊,这个我媳妇儿一说说要过双11了,我说你是要过光棍节吗?啊啊,现在都叫全民狂欢购物节是吧,前一年的话呢,很疯狂啊,然后今年的话呢,这个京东啊,跟这个淘宝呀,很有默契啊,不再去公布这个数据了。哎,整个经济形势呢,其实没有以前那么好了是吧,或者以前呢,大家消费的时候呢,都是还是比较冲动的,李佳琪呢,直接在直播间买它是吧。啊,现在都说大家要理性消费哈。哎,对的啊,好,那么。这个这个从光棍节引过来,那叫对象是吧,那个对象啊,生活中的对象跟咱们这个对象啊,不是一回事是吧。哎,这个对象呢,是内存当中的啊呃,一个实体才叫对象。啊,这个对象呢,放成我们这个英文的话呢,它就叫做object是吧,你看看有点冷冰冰的是吧。嗯,OK。好,那么从面向对象开始呢,咱们对应的有三张哈678,哎,用咱们这个思维导图来看呢,就进入到第二阶段了。
01:06
啊,我们前面呢,都是能避开面向对象就避开,实在避开不了呢,我们还必必须得用一下,像前面我们出现scanner的时候。啊,其实我们就用了是吧,哎,只不过那时候呢,说大家你就先写啊,咱们先不去讲啊,再一个的话呢,就关于string啊,String的话呢,是咱们最先接触的一个类型啊,第一天就hello world了是吧,那其实呢,跟大家说呢,对呢,它就是一个类。是吧,大家写的那个hello word呢,其实啊,它也算是个对象了,就。啊,只不过呢,我们悄无声息的就在用啊,没有感觉啊,啊那么我们第二阶段呢,就是系统性的来讲解一些面向对象。这个面向对象啊,它其实是一种编程的一种。想法啊。啊,这种想法呢,叫面向对象的编程思想。啊,还有别的这种思想呢,诶只不过呢,Java呢,因为是面向对象的,所以我们重点来讲一下,一旦这个代码量比较大的时候呢,我们该如何呢去做这个设计,哎,我们来看看Java的这种面向对象这种想法是怎么来做的,对应呢咱们有三个章节。
02:06
哎,那咱们先讲的呢,就是第六章了。好,那这块呢,我们打开这个课件呢,咱们就看一下这个第六章啊。诶,整个呢,这个第六章咱们要讲的内容啊,其实这一章不少,你看。那这边这个绿色呢,就是咱们的案例了啊,这个红的呢就是重点,蓝的呢就是难点是吧。给笑了,笑的特别冷是吧?啊,有点多哈,诶,那么关于面向对象这块呢,这只是咱们一个章节,还有第七章和第八章啊,思维导图你展开你就看到了,诶那么这块学习上,诶,我把它归了,归这个主线哈,因为这块内容有点多,所以呢,从这三条主线出发,诶我们去讲解这个内容,那么第一条主线呢,叫类和类的成员。诶,那么Java类呢,是我们说面向对象里边非常重要的一个概念啊,包括我们第一天写代码的时候呢,上来不就也是写一个类啊直播关于这个类呢,我们其实没有详细的展开去说任何信息啊,只知道呢,这里边我们写个类方法,这就是程序入口了。
03:09
没有别的呢,多余的描述,哎,那这呢,我们要讲说在一个类里边哈,我们到底都能想哪写哪些东西呢。那没方法呢,它只是相当于一个方法,那除了方法之外还有其他的吗?对我们说呢,哎,最常见的第一个呢,叫做属性。啊,然后呢,还可以有方法。哎,那么以及的话呢,属性方法还有一个常见的叫做构造器。哎,这块呢,我来一个分号啊。哎,除了这三类之外呢,还有呢,叫代码块和内部类。对,那么为什么加分号呢?因为前面这三个呢是重点。也就是说我们在设计一个类的时候呢,最常见的啊,后边这两个呢,我们见到就比较少,大家呢熟悉一下就可以了。啊,我们自己定义的时候呢,八成很少去定义这样的结构,但是呢,我们在看一些源码的时候呢,它会出现啊,你得知道呢,它是什么意思,什么时候执行。
04:01
整个的啊,内存结构啊是吧,执行的这个过程啊,是什么样子的,哎,你得清楚啊。好,这个呢,就是我们的第一条主线,第二条主线呢,就提到了面向对象的特征。习惯上呢,咱们一说特征啊,一般的就是要三大特征啊。呃,其实呢,在整个这个官方的啊,就是人家这个Java的Oracle官方当中讲了一个特,其实没有明确说三大特征。像这个都是咱们国内的大家呢,学东西的时候不都是爱总结吗。啊,几大方针,几大标准是吧,八大原则,诶我们这块呢,就说诶我们这有三大特征是吧,这其实咱们总结出来的哈,诶这个呢,就称为呢叫封装。哎,继承,哎多肽。嗯,就是说三个的话呢,我们是居多的,呃,如果你要是在这个笔试面试当中啊,你除了这仨之外,他说诶还有一个。还有这块,你就把这个抽象的给他补充上。哎,但是呢,你要说三大特征的时候,你别说封装继承抽象啊,要说三个就只能是这三个。多一个才是才会多它啊。
05:02
好,这个呢咱们都会讲啊,然后呢,另外呢,就是这呢叫其他关键字的使用啊,因为上边的讲解过程当中已经会有一些关键字了。啊,其他的有哪些呢?哎,首先比如说这次。哎,翠花。Package。啊import,其实你看import我们不都也见过了吗。Pack的话呢,虽然我们没有讲,但是你会发现呢,咱们在idea当中开始写代码的时候呢,往下找。一定会找到这个package是吧?哎,就是你这个代码对应的这个类哈,你是写在哪个包下的呀,这不就是指明了这个包吗。哎,这呢,就是这个关键字,其实呢比较简单啊,哎,那么后边的话呢,我们还会讲到比如说static。Final。是吧,哎,这个接口叫做啊interface。啊,这个抽象抽象的话呢,你要放在上面呢也行,不放在上面就放在这儿叫abstract是吧。啊,等。哎,这样一些关键词,哎,Class就不用写了,这都在前面的都讲了啊。好,这呢,就是我们说啊,还要谈到的其他的一些关键词的使用。
06:02
啊,另外呢,我们在零零散散补补充一些,比如说像枚举啊是吧,这个咱们也可以归到这里边包装类啊,那就是一些具体的一些类的一些使用了枚举类,包装类其实都属于类。特殊的类的使用,哎,整个呢,就构成了咱们面向对象的完整的内容。呃,这三条主线呢,你注意哈,咱们不是说这是第六章,这是第第七章,这是第八章,不是这样子的,呃,因为呢,我们讲的时候呢,你可能这块讲到这儿了,这个我们就不能再往后走了,因为再往后走呢,需要依赖于其他的一些知识了,所以我们可能就得需要开这条线,哎,这个开到这儿了啊,就再走不动了,哎,我们得这块开一点。所以呢,这三条线呢,其实是并行的在往后去推进的啊。哎,这三个章节的划分呢,纯粹呢,就是考虑说放的一张呢,有点太多了啊,就按照这个讲的顺序呢,就拆了拆放成三个章节了。啊OK,就是这样子的啊,诶所以大家呢,也不用特意的紧张哈,你说这个,哎呀东西这么多,实际上呢,这块的学习啊,就是诶每一个内容讲完之后,对应的有代码相的代码呢,大家你敲一敲啊,也基本能理解就行了,然后就下一个主要呢,还是看这个相应的代码能不能写。
07:06
啊,代码能写,那你面压对象呢,基本上就是清楚的,完全不知道在干什么,那这块呢,代码也写不了,那就是这块呢,就稍微的弱一些了啊。好,这呢,就是咱们说的这样的三条主线啊,就过了,哎,然后呢,咱们来正式看一看,这关于面向对象变成了一个概述啊。嗯,这个面向对象编程啊,它其实就是一种程序设计的思想,或者叫一种思路哈。啊,这也说了,是软件开发的一种编程的风格,或者叫开发的一种范式。啊,除了面向对象呢,还有比如叫面向过程的。还有指令式编程,还有叫函数式编程,哎,就是不同的编写代码的这种方式,范式范式啥意思呢?就是一种形式吧。啊,这个我类比了一个例子,我觉得是比较合适的啊,就跟大家呢写这种。大家不写了是吧,就是这个,呃,历史学家他们写这个史书啊,写书的时候呢,他就考虑,诶,我是以人物为中心。
08:05
来写呢,还是按照这个年年份儿的这个顺序来写呢,还是按照这种国家的这种情况来写呢,是吧。哎,这就不同的方式了。哎,咱们上这个上这个高中,高考的时候呢,不都得写那个作文吗。作文的话呢,通常一般都是这种。话题性的是吧。对对,一般都是就是他给你个话题呃,有一段什么样的场景啊,或者给你画个图啊啥的是吧,然后下边让你去写,因为这种开放性的比较好啊,然后呢,下边你去写你哎,可能写这种记叙文是吧。也可能写成议论文。还可以写成散文是吧?还有的写成那个古文的。啊,我记得有一年的那个特别经典啊,就是我高考前后,诶,那个小伙写了一个一篇古文,叫叫叫什么赤兔之死啊。对。听说过的,应该年龄都不小是吧?啊对这篇呢就获得满分作文了,然后呢,呃,大家呢就对褒扬极高,然后好像就直接破格了啊,去了一个特别好的一个学校,好像是啊,多个学校呢,就要招聘他啊。
09:10
对,就是你可以写很多种文体,就是你你你都要这个叫什么,从这个话题出发你去写,但是一般呢,大家稳妥起见,是不是都写议论文是吧。啊对,就是你完全可以不写一轮啊,你说我散文特别强啊,叫什么行散神不散是吧?啊对,就是你可以有不同的设计方案啊,你选一个你自己想写的方式,我们这儿也是一样,我现在想完成某个需求。你呢,可以用面向对象的这种思路啊,这种风格去写,你也可以用面向过程的风格去写,也可以用其他的。啊,只不过呢,在这些里边呢,我们说呀,诶随着你这个需求的不同,我们推荐你用哪一种是吧。啊,那么这里边儿呢,咱们说重点的,呃,可以给大家去谈一谈,就是面向过程和面向对象,这是我们说呢,比较常见的,呃,两种编程的思想。那面向过程,哎是什么意思呢。
10:02
那这就起到一个过程了是吧。哎,就是我们,哎来了一个具体的需求之后呢,我们就看看这个需求怎么一步一步的去完成。我就按照这个步骤一步步开始去写,写的过程当中如果发现有些代码呢,能够会重复出现了,那我就把这个,呃,所谓的这段代码呢,给它封装起来,我就抽取为一个函数。哎,那么下次你再需要用的,我就直接调这个函数就行,这样也能简化我们的开发了哈。嗯,OK,所以说呢,对于面向过程来讲,它的典型的代码结构呢,就是以函数为单位的。啊,代码结构以函数为单位,典型的语言就是C语言了。啊,这块说是一种执行者思维,适合解决简单问题,拓展能力差啊,这个大家可能没有感觉,一会儿咱们有例子啊。然后什么叫面向对象的这种程序设计思想呢,哎,他呢这块呢,呃,就会从一开始哈,这个站位呢就比较高。哎,就是你不是要完成具体一个任务需求嘛,我站位就比较高,我从宏观上呢,我去看,我要想做成这个事儿,这个事儿呢,在这个直这个实现的过程当中,涉及到过哪些这个主体。
11:06
哎,我把这个主体呢,先给大家抽象出来,这个主体其实我们说的就是累了。然后呢,我再看一下这个类,要想完成这个事儿,它应该具备什么样的功能啊,上面提到这种函数哈,它这里边儿也有。哎,我们就把这种函数呢,就放到这个类里边,作为它的功能出现了,然后呢,诶,我们再去创建这个类的对象,去完成整个这样一个效果,这就叫做面向对象的一种设计思想。哎,就是纯粹是不同的思想而已啊,就是你可以用它,也可以用它,那么诶我们什么时候推荐用面向对象呢。就是当我们这个代码量比较大的时候,我们推荐用面向对象,当这个代码量比较小,需求也比较简单的时候呢,其实面向过程挺好的。啊,就是这样子的啊,诶,那么具体呢,咱们给大家去举例子去体会一下啊,比如说。第一个事儿啊,说我们如何开车呢。啊,一说到如何开车,我们可能说直接就想到了,说我就先点火启动。
12:04
踩离合挂挡。啊,松离合踩油门,哎就走了,哎就是这样很简单一个步骤,所以说呢,一提到这个如何开车啊,哎,我们说啊,其实你用面向过程的思想去解决挺简单的。就把这几个事儿呢,依次用代码去实现就可以了。啊,这就是适合这种简单的是吧,不需要协作的这种相应的一些事物的话,诶,我们就用这个面向过程来做,哎,那我现在再换了个场景说我现在啊需要造车了。需要造车,那这个事儿的话呢,你看如果造车你不能上来说我们得先,呃先哪儿呢。都不知道西安哪是吧。呃,因为这个呢,明显很复杂了。那这时候我们就得从长计议是吧?所谓的从长计议的话呢,你就得是从一个整体宏观上呢去看。怎么办呢?诶我们先看看这个车呀,诶分成好多部分哈。座椅呀,车壳呀,底盘啊,发动机呀,轮胎呀,挡风玻璃呀等等。
13:02
啊,那么这里边儿呢,每一个大家能,哎,就是你如果看到一辆具体的车了哈,你能摸得着的,实际上呢,这就是我们后边讲的这种对象。但现在没有车是吧,没有车都是你概念上的这个所谓的概念上的这每一个实体的东西啊,其实就我们可以把它就封装成是一个类了。然后呢,诶我们造这个车,其实呢,就需要这些类呢,相互之间呢,去做一个协作。上面没有这种所谓的写作,就直接一串就过来了,是吧?哎,那么我们设计这样的一个车呢,其实呢,就是设计这些类,看看这些类呢,它们里边有哪些属性,比如座椅几个座椅啊。啊,然后比如发动机,发动机有什么功能啊。是吧,哎,这就是我们去设计它的这样的一些内部的结构了,然后呢,这辆车就是相互之间,这些结构之间互相协作完成的,把这一辆车呢,就造出来了。啊,你要用面向过程说先什么一条线给它串起来,这个事儿呢就不太靠谱了,所以呢,这种场景复适合这种复杂业务的,我们就用面向对象了。
14:06
OK啊,诶,这里边你看我也提供了一个点哈,就是在我们整个设计这个类的过程当中,里边呢说具备什么功能,比如发动机的一个具体功能,这呢其实就是一个函数,那这个函数呢,其实你细节看呢,又是啊呃,先什么后什么再怎么着,其实呢,里边这个细节呢,又是一个面向过程的。所以面向对象和面向过程呢,不能够把它对立起来啊,就是从宏观上来讲呢,是两种思想,但是面向对象的里边呢,细节到一个函数上呢,还是一个面向过程的。OK啊好,这个完了以后呢,我再给大家举呃这个这个一个例子哈,呃这个呢,是什么场景呢?就比如说大家呢,毕业以后啊,现在这个大环境可能不太好了啊,像这个前些年的时候呢,整个这个。市场环境特别好,创业的就很多。啊,尤其明显的应该是在这个,呃,一三年到1516这块哈。啊,大家那时候应该上这个。上啥了,小学初中?
15:01
高中啊。初高中这块是吧,这块呢,整个这个市场啊,就特别的。热哈,就是大量的外钱呢,就涌进到这个移动互联网这个领域里边了,当时夸张到什么程度呢?像这个百度的,比如说做这种产品经理的是吧,啊就挺好的,人家在百度做着也没想离职,然后呢,就有各种资源就找到他,说你想不想创业。我这有钱,你说我不知道干什么,没事儿你先出来。我先给你筹钱是吧,你想干什么你再想。就夸张到这种程度啊,当然呢,这种本来就不正常,所以呢,很快的就是急速的冷却哈,所以呢,你会看到在这个一五年年底的时候呢,这个iOS培训呢,就急转直下哈,市场立马就不缺人了,断崖式的下跌是吧,然后呢,半年以后呢,这个安卓呢,就是又出现断崖式的下跌。啊,因为那时候呢,好多这个APP呢,都是从那个131415那时候起的是吧?嗯,然后能起来的就起来了,就现在就形成一些巨无霸了,没起来的现在其实也很难再起来了。啊,市场已经被瓜分的就差不多了,就啊那时候呢,确实很夸张啊。
16:00
好,那现在的话呢,创业不是一个特别好的时机啊,但是咱们假设呢,你现在需要创业了啊,那创业的话呢,一开始就哥几个是吧,那租一个小地儿就开始了啊,那公司呢,虽然说小,但是呢麻雀虽小,五脏俱全,事儿呢可能都不少啊,那这个时候呢,往往我们需要的就是一种面向过程的思想,说现在来了一个事儿。那我们直接想就是,诶,我们先怎么着后怎么着再怎么着,哎,这个事儿我们就做完了,哎,又来个事儿,同样的思路去做。这就是面向过程的思想。啊,那么如果说你这个公司的业务做的都都挺好,然后人员呢也暴增,最后呢,这块就放了一个,比如说是一个大公司的。像华为这样公司啊,员工的几万十几万。啊,这种大型的这种企业了啊,这个时候的话呢,你再说来了一个事儿啊,先怎么着再怎么着后怎么着,这个可能就很难能穿起来了。他需要特别多的部门。啊,甚至说还不同的地方的这些去协作才能完成了,那么这个时候呢,就适合用面向对象的思想。诶,我们呢,把公司比如说几万人的这个员工,我们就分成了不同的部门。
17:05
你像这个腾讯啊,在这个历史当中,我关注过还有好几次呢,做这个整体架构的一个调整,就是你在公司在不同的呃情况下啊,它这个架构呢,一定是不一样的。啊,随着这个公司业务的发展,人员的增加,你这个架构呢,就要重新设计啊,分成几个大的事业部,事业部下边再去分相应的这些部门等等啊,很复杂啊,哎,那么我们这儿也是一样啊。你得分成了不同的部门啊,就以咱们比如说商务为例,是吧,咱们有教学部啊,有这个比如说哎,这个教务部啊,有这个辅导部啊,有这个就业部。就这个对后勤部还有这个咨勤部吧,诶相应的各个部门,然后每个部门下边有相应的一些员工,然后呢,我们这个部门也有一些这个部门的一些要求准则是吧?哎,或者你主要是做什么的工作的职责,这个呢,其实看到我们这个类里边的一些方法的一些设计了。然后每个人呢,都在自己的相应的这个部门里边,其实具体这个人呢,就是类的一个对象了。
18:03
哎,现在呢,我们有一个需求过来了,这个需求呢,诶不是说呢,像我们说咱们开车一样哈,三两行这个操作就完事了,它呢需要一个复杂性的一个协作了,这个时候我们就用面向对象的这种设计啊,先这个部门参与做什么样的工作,然后这个部门参与这个参与这个参与等等,把这个事呢整个穿起来。哎,也就是说呢,对于这种大型的这个需求来讲,我们用面向对象设计是比较合适的。啊,这我就说完了。啊,这是一个类比啊,然后这块呢,我又放了一个例子,这个呢,就大家呢,就是呃,理解一下我们说的这个过程和对象的事儿啊,诶把大象装冰箱里边,用面箱过程来去刻画,我们就关注于这个步骤。啊,先打开冰箱,把大象放进去,把冰箱门关住就完了。然后呢,如果用面向对象的方式去做这个事儿呢。怎么做呢?哎,我们这时候就得考虑哈,在整个这个事情啊,要想完成的这个情况下哈,我们涉及到哪几个主体。
19:02
哎,发现有人。有大象。有冰箱是吧?哎,那我们首先呢,把这几个主体呢,先明确出来。哎,明确出来以后呢,我们接下来看一看,要想把这个事做成,那么现在的这个主体应该具备什么样的功能。哎,人把大象装冰箱人,首先你得能够打开冰箱。啊,你得能够把这个大象呢,得能够拿起来是吧,我搬起来也好啊,总之操作大象啊,操作不是别人操作是大象。诶,所以这个呢,我们小块里边呢,只能放大象啊,然后呢,你还得能够把冰箱得关住,关的也不是别的,关的是冰箱,诶所以这块呢得这样,然后具体在这里边儿呢,诶打开冰箱,哎,冰箱呢,它得有个功能,它得能够开开哈,开门的一个功能。来关闭冰箱,冰箱得有个关门的功能,我们再去调它。啊,操作大象的时候,大象它得能够进到这个冰箱里边。哎,所以这呢,就是相应的这个主体具备的功能,哎,这呢我们就设计好这个主体了。然后呢,说具体的人把大象装冰箱,你在那哎,造一个具体的人。
20:00
啊,再整一个具体的大象,然后把它塞到一个具体的冰箱里面。人家说呢,怎么感觉好像好复杂呀,是吧?跟这个比,它确实要复杂点,因为我们这个需求很简单呀。但是一旦我们这个需要很复杂的时候呢,你用它去写。那你可就复杂了啊,就不如你用这个结构呢,看着清晰了就。哎,这个注意啊,至少呢,通过这个呢,我想让大家感受到就是诶,我们这是怎么这样去体现这个面向对象的啊。捋一下好,这个清楚以后呢,咱们大家呢,你再看这个事儿啊。这呢,我放了一个具体的,实际上呢是一个。啊,一个项目了,啊,这个项目里边呢,涉及到了这样的一些主体。啊,就是订票的这样一个啊系统啊,这个系统里边呢,哎,你说像这呢,都是一些具体的类了啊,这个我们都有哪些具体的类呢。旅行社算一个是吧。航班目录啊,这也算一个。
21:00
其他文件。旅客。机票。差不多了是吧。对,比如旅行社,这个旅行社呢,他可能有个名。啊,它下边这个主体的法人是谁啊,像这样一些基本信息都在它里记录呢,啊这个订票那个票呢,多少钱啊,从哪到哪啊,几点起飞几点到啊是哪个这个,呃,这个这个飞机的这个哪个这个航空公司的航班呀,哎,在那个机票上呢,都有记录,哎那相应的我们都刻画到相应的他的这个类的呃信息里边了,然后呢,完成整个这系统,呃,具体这个客户来了,旅客来了啊,他要买具体张票啊,你就给他造一张具体的对象了。诶,他拿这个呢去,诶包括这个账目相应的在这个本里边呢,得在这儿是吧,大家去记录一下就行。那其实呢,大家也发现一个套路啊,就我们在完成的时候呢,你发现呢,这里边儿是这种名词的哈。哎,似乎呢,就都可以作为一个类出现是吧。
22:00
啊对啊,名词呢,可能是个类,也可能就是一个。基本数据类型的变量了。比如说诶这个票价多少钱。我们就没有必要呢,再用一个类去刻画了,哎,就是用一个int或者double型的变量刻画就行。好,那么整个呢,咱们就把这个编程呢,相当于两种思路呢,给大家说了说啊,那么面向对象呢,是一种编程的思想,那么这种思想呢,是一种建物呢还是。哎,一种顿悟呢。是吧,就我们这三章讲这个面向对象思想,还有一本书呢,就叫做面向对象编程思想是吧。一说到思想呢,感觉就很抽象哈。对,像这个佛家里边呢,讲究这个叫顿悟是吧。啊,就在那这个不停的天天思考啊,思考思考思考,思考到这个胡子都白了是吧,突然有一天。大彻大悟是吧,哎,顿悟对,哎,佛家里边讲顿悟啊。对,咱这儿呢,其实对大家刚才说的对的就是剑物是吧。就是慢慢的啊,就是怎么着呢,哎,咱们前面呢,讲的就是具体的这样一些具体的细节。
23:04
写哪儿了,写这儿了啊。具体的一个细节,我们讲了属性,属性呢就会有代码下来,你把这个代码敲一敲,讲了方法了,方法有代码,把代码敲一敲,诶讲到哪个,你把对应的代码落地的去实现了,整个的讲完之后呢。我感觉还是迷迷糊糊的问,会写亮妈妈,会写,会写就行。是吧,诶我们后边呢,不还讲高级应用吗。这呢都是,呃,咱们说呢,后边为啥说面向对象重要,因为后边都离不了他。那离不了,就说明我们后边翻来覆去还会用,在后边用的过程当中,哎,你就有感觉了。比如这个集合是吧,集合呢,是一个具体的类了啊,具体你想整一个容器了,这就具体的对象里边就放东西就行。哎,里边有个方法直接调就行啊,哎,这都是面向对象的体现,随着你不断的去应用,你发现你对它的理解呢,就越来越深入。啊就可以了,好,那么刚才的话呢,我们就把这个面向对象呢和面向过程呢,我们做了一个对比哈,呃,需要呢,大家去理解呢,它其实就是设计程序的不同的思路而已啊哎,那我们也没有必要大家说我去面向对象是吧,我有没有必要先把面向过程先弄清楚,我先把C先拿下是吧。
24:11
不用哈,诶直接呢,我们就学面向对象呢就可以了啊,那面向对象呢,刚才我们也提到了啊,其实呢,他提到了这个叫类啊,作为我们整个语言设计的一个关键了,哎,所以下边我们来提提它的基本元素,一个叫类啊,一个叫对象,我们说面向对象。你说面向的是谁呢?就是我们其实重点呢是在造这个类,但是实际呢,去执行的时候呢,用的都是对象。OK啊好,那么提到这个内核对象啊,咱们先呢,为了区分出它俩,咱们引入一个问题是吧。说呢人认识世界啊,说其实就是面向对象的。那也就是说呢,我们其实看到的都是一些实打实存在的一些物体是吧?啊,可见的一些个体啊,这个呢,其实就都是这个对象了,比如说我们认识一下美人鱼,虽然说你真是也没有见过美人鱼哈,但是我们在这个影视作品当中啊,这个或者这个动画片当中,是吧,都见过这美人鱼了,那其实这些呢,都是。
25:07
对象。啊,不是你的那个对象是吧?啊,都是对象,就是实打实存在的每一个个体都是对象的意思啊好,那么由这个出发呢,说诶我们能不能说这个抽取出来一些特征,说的满足这些特征的话呢,其实就是美人鱼了。比如说发现那个美人鱼这块呢,都是女孩儿是吧。你要说美人鱼是个男的,这有点受不了也是吧,啊这个,然后有这个鱼尾。是吧,对,然后呢,还得比较美丽。啊诶OK,哎满这呢,其实有好多特征啊,咱这就抽取仨,哎说呢,诶满足这样特征的时候,哎我们说呢,这就是美人鱼的一个基本特征了,那我们抽象出来的这个东西呢,其实我们就可以用一个抽象的一个类来表示。啊用类呢,说诶满足这样特征的这个一个虚拟的东西,啊说这就叫美人鱼了,那么我们看到的这些呢,都是实打实存在的,一个一个的真实的美人鱼。
26:02
所以我说这个真实呢,不是说物理世界存在啊,就是你看到真实的一个个体了,属于。啊,就这样子的啊行,那么这里边就提到说我们整个刚才说这个过程呢,就是个抽象化的过程,那抽取出来的就是一个美人鱼的类,那图片当中呢,都是具体的对象。那这呢,我们就引出了两个概念,一个叫类class,一个叫对象object,它呢,两个是密钥对象的核心。哎,首先说什么是类,是具有相同特征的事物的抽象描述,是抽象的概念上的定义。而对象呢,就是存在的啊,实际存在的该类事物的每一个个体,它是具体的,所以呢也称为呢叫实例。实例就是一个具体的一个例子,一个个体。啊,你比如说哎,我们一说到人说人类。还挺搭的是吧哈,呃,人类人就是构成一个类人,这个类的话,你说这个类它就是抽象的。你一说到人,哎,你好像想象不出来说是怎么叫人呢,它是一个抽象的概念啊,但是呢,凡是你见到的这个呢,这都是具体存在的。
27:07
啊,这都是对象。比尔盖茨,他就长这样。啊,然后乔布斯还去世了,给你找了个黑白的啊对这个,嗯,任正非是吧,诶这都是实打实存在的这个个体,诶这这都是对象。哎,那他们都属于人这个抽象概念呢,具体出来的一个一个的个体人具备什么样的特征?啊,那么这个具体的个体呢,就具备啊,人这个类的这个特征。诶,所以呢,从这个角度出发的话呢,我们说人呢,就是抽象概念上的啊,这个类呢,就是抽象概念上的人啊,对象呢,就是实实在在存在的某一个个体啊,哎,我们再换一个角度,比如说这个手机啊,诶,凡是大家能够看到的,一台一台的这个具体的手机,看得见摸得着的,这都是对象。呃,而这个呃,什么叫这个类呢?就是我们在造这个手机的时候啊,我们都会有具体的手机这个图纸啊,我们可以列解成是偏抽象概念上的,说手机得是什么什么样的,有什么样的功能是吧?哎,那么这个抽象概念上的这个手机呢,就理解成是我们说的类。
28:07
哎,派生出来的,这都是具体的对象。啊,再换一个场景,比如说我今天出门要坐车,哎,这个车呢,没说是坐哪个车,就是抽象,抽象概念上的,这个车有发动机啊,可以载人,可以行驶,这个呢就理解成是个类了,按说这开上我的爱车去兜风是吧?呃,你的那个爱车呢,就是一个实打实的一辆车了,这呢就是一个具体的对象。OK啊,就是这样的场景,好,那么这时候呢,我们就把这个类和对象呢,哎,大家首先要明确它们二者的一个区别啊,哎,然后呢,关于类和对象的一个关系的错误的理解,呃,不是并列关系的,你看这呢是古代的一个故事啊。哎,大家应该以前上学的时候可能多少听说过啊。对,就是白马,非马说是吧。对,这呢是古代的一个叫公孙公孙龙是吧,啊,现在说叫一个诡辩家啊,哎,说呢,这个他拉着他这个白马是吧,要过这个城门了啊,这个守卫呢,就说这个马不能过啊,他说呢,白马非马可呼。
29:06
那就这个是这个,这个守卫问的是吧,他说可以呀,说为什么呀,说这马呢,是以形啊来命名的,而这个白呢,是以颜色来命名的,说命色者,非命形也,故曰白马非马。这小伙一听有道理是吧?啊,这叫降维打击是吧?啊诶,那我们当然都知道了,白马那肯定是马的一个具体的一个体现了是吧?哎,白马如果看成个对象呢,这就算是个抽象概念上的一个类了,所以马不让过,那白马肯定也不能过,而他呢,把这个白马跟马看成是两个并列的概念,啊,这个就混淆了概念是吧?OK啊,行,这呢,我们就明确出来这个类和对象的概念,好,那么至此的话呢,咱们把。哎,相应的刚才讲的这些概念性的内容啊,咱们稍微的捋一下啊,哎,那这呢是咱们第六章对应的这个module啊,同步的我再去新创建一个module。CAPTURE06。啊,这个叫a teacher啊。
30:01
好,然后呢,把这个OSRC那下载这个所有的代码CTRLC一下,哎,我就粘到我这个src下了。好,然后上面这个呢,大家呢,就是诶按照这里边的模板去练习就行,我这呢直接就来这个了啊诶首先第一个我们打开它,哎把我们刚才讲的这些概念性的内容,我们稍微的捋一下,哎,首先呢,提到了整个咱们学习面向对象内容呢,有一个哎整体的这样的一个哎主线啊CTRLC,注意这个主线呢是我画的啊。呃,这个你面试的时候呢,说谈谈你对面向对象的理解,你说有三大主线,嗯,其实你这样说也行啊,就是,但是你知道呢,这个不是官方说的啊。OK,诶行,然后这呢是提到他,然后下一个呢,我们说这个具体编程的这种想法的话呢,有面向过程和面向对象两种思路啊,面向对象啊对应的这个英文。啊,这个呢,就是啊,Process oriented programming就是pop啊,面向对象呢,我们object oriented programming就是。哎,就是平时呢,就这样的去说了啊,所以我这一章呢,叫op就是面向对象的意思了啊。
31:02
好,那么简单来概述一下,说面向过程啊,我们可以这样去说哈,首先呢,它是以函数为基本单位的。啊,就是你可以呢,就说这两句话呢,其实就可以了啊CTRLC简单理解一下啊。以函数呢为基本单位。哎,我们说呢,是一种执行者思维啊,适合解决这种简单问题啊,对应的就是拓展能力差啊,后期维护呢难度比较大,而面向对象呢,是以类啊为基本单位。啊,每一种事物呢,都具备自己的属性和行为,是一种设计者思维,适合解决复杂性问题。哎,这个呢,大家啊理解一下就可以啊。好,那么二者的关系呢,注意不要把他们二者呢,完全的给它割裂开,哎通过刚才举这个车的例子啊,哎,虽然我们把它哎抽象出具体的类来了,但是类里边具体的功能的话呢,哎具体的一个功能可能就是一个函数,我们还是要用到面向过程的,所以说呢,我们不要把它俩对立,对立起来,面向对象里边其实呢,也会体现相应的面向过程的这样的一些代码。
32:02
OK啊好,那么具体来讲的话呢,我们说面向对象呢,有两大核心的概念啊,我们刚才提到一个叫类,一个叫对象啊,这个类的话呢,我们是用这个class呢来进行刻画的。哎,这个对象呢,就我们说的这个object。那就他啊。Object行,那谈谈你对这两个概念的理解,那一说到这个类。啊,怎么说呢。它是对一类事物的抽象。是吧,是概念上的一个定义啊。哎,就我们刚才这里边儿提到的这个。哎,这个。呃,具备相同呃特征的事物的抽象上的一个概念。你就想人类就。啊,然后这个对象呢。对于由这个类派生出来的一个实在存在的一个个体。哎,我们就称为呢,它是一个对象了啊,也称为呢,叫做实力。哎,就他。哎,那大家呢,需要呢,能够去区分出来他们二者啊,实际情况来看呢,大家基本上也都很清楚啊,也不会迷糊了啊好这呢,就我们说的这样的基本的情况叫类与对象。
我来说两句