00:01
好了同学们,那么咱们把这个呢,先退了啊,退了退了之后呢,接下来啊,我这个呢也改一下啊,这边呢,点右键我新建一个我们新的目录叫做CHAPTER08第八章啊,然后代码呢是放到这儿啊,第八章就开始面向对象了,各位啊,在这块啊面向对象,那么咱们的课堂笔记呢,在这儿我再新建一个,点右建,我新建一个什么呢,叫做DAY13的。啊对,13的一个课堂笔记。啊,这堂课堂笔记,笔记呢,会给大家写到这儿啊。然后代码呢,老规矩还是放到这CHAPTER08下边啊,到时候我还是给他传到网盘上啊,来带13的一个课堂笔记,那么这块呢,第13呢,第13天是吧,我们讲这个第八章叫做什么呀?叫做认识面向对象。啊,这个是偏理论的比较多一些啊,偏理论比较多一些,然后第八章结束之后呢,我们就看一看对象怎么去创建是吧?哎,怎么去使用,那行,咱们来看看面向对象吧,行吧,面向对象啊,首先我们看看第一个问题,就是面向对象和面向过程有什么区别。
01:09
面向对象和面向过程有什么区别?来,我们先把这个问题探讨一下啊,这是从理论上咱们看一看啊,叫做面向过程啊和面向对象哎,有什么区别。我们在这里呢,就是纯讲理论了,各位啊,这个理论这个东西呢,大家注意啊,别睡着了啊,我尽可能讲的生动一些好吧。哎,讲的生动一些啊,首先这样同学们,咱们先先认识一个东西啊,就是说呃,在我们这个C语言里边,大家要注意啊,我们先从语言的角度来出发啊,对于C语言来说,它是一个纯面向过程的啊,就是面向过程的啊,一会我去给大家讲讲面向过程是啥啊,我给大讲讲面向对象是什么东西啊,那行,你比如说对于什么呀,哎,对于。C语言啊来说。来从什么呢?从语言方面出发啊。
02:06
哦,行行行,好嘞好嘞好嘞。从语言方面出发。啊,对于C语言来说是。完全什么面向过程的啊,是完全变过程,那对于什么呢?对于C加加语言来说啊,是什么呢?是一半什么呢?哎,面向过程啊,一半是什么呢?哎面向对象啊,所以说呢,C加加是半面向对象的啊,C加加是半。面向对象的啊,面向对象半面向对象。啊,对于这个咱们的这个C加加来说啊,是一半哎面向过程,一半面向对象,但是呢,对于什么呢?Java语言来说呢,哎,Java是什么呢?是完全面向对象的啊好,这是第一件事,我先给大家交代明白啊,就是来从语言的角度来出发,我们哪个语言是面向过程的,哪个语言是面向对象的,啊来我们先来看一看什么是面向。
03:22
过程的啊,开发方式啊,然后呢,我们再来看一看,哎,什么是面向对象的开发方式。啊,开发方式。然后呢,我在讲解的过程当中呢,大家去对比一下这个面向过程,面向对象有什么区别好吧,那首先第一个呢,这个什么是面向过程的一个开发方式呢,是这样的啊,采用面向过程呢啊,这个开发方式最主要注重的是步骤,就是实现一个程序的一个步骤啊,就是第一步干什么,第二步干什么,第三步干什么,第四步干什么。
04:00
啊呃,强调的是一个呃因果关系,因为这个所以那个,因为这个所以那个,因为这个所以那个啊就是说什么是面向过程的方式,呃的开发方式呢,就是说面向过程的开发方式。啊,主要的特点是注重什么呀,步骤。注重的是实现这个功能的步骤。第一步干什么?对吧,第二步干什么。啊。另外面向过程也注重实现,哎功能的。因果关系啊,因果关系。因为A所以B啊,因为B所以C,因为C所以D啊是这样一个啊,一个过程,如果是采用面向过程的方式进行开发的话啊。
05:11
它是没有对象的概念在里边的啊,没有对象的概念在里边,嗯,是这样啊同学们,我现在呢,讲这个面向过程和面向对象这个东西呢,我讲完之后啊,其实怎么说呢,我没有太大的把握,大家都能理解。一般的话能够理解个百分之三四十差不多啊,差不多,因为毕竟啊,大家C语言也没有接触过,C加加呢也没有接触过,Java这块也是新新学的,甚至呢,前几天你根本就不是这个行业的,突然突然之间让你来学Java,对吧?哎,你来学Java之后呢,哎,还给你整出一个什么面向对象和面向过程,这个东西很抽象这个东西啊,我讲完之后你未必能够完全明白,但是我觉得你应该能够理解一丁点啊,能够理解一丁点啊,能理解多少咱们就理解多少,各位啊,咱不要去着急,也不要心慌啊,为什么,因为。
06:02
因为咱们呀,怎么说呢。咱们在这个,呃,对于我们这个有经验的这个程序员来说啊,其实开发呀,两三年开发三四年之后啊,实际上我们才能够真正的去理解这个面向对象。啊,真正去理解面向对象,就是说你可能刚开始听啊,面向对象是这回事儿,但是呢,你会随着你这个软件的开发,你会发现面向对象的感觉越来越深入啊,面向对象的感觉来说,到时候你就理解这面向对象和面向过程的一个哎区别啊,现在的话只是听一下这个理论啊,听一下这个理论各位啊。需要四年的时间啊,需要四年时间。对啊,目前啊,先听一下啊,需要三四年的时间。才能彻底领悟啊,对象。所以这个东西的话,大概先听一下好吧,哎,再往后的话,我们。其实主要是写代码这一块啊,再去反过来再体会这个面对形编过程啊。
07:07
呃,面向过程都得自己做。面向对象是任务,可以让对象给你做。啊,也就是说呢,实际上面向过程是强调是以我为中心啊,面向过程是强调以我为中心。啊,以我为中心,我干啥我干啥我干啥,你比如你开车一样,对吧?哎,我先干啥呀?啊我先这个踩下去这个离合,然后呢,我呢再挂挡是不是,然后呢,我松离合干啥呀,我再加油是不是,哎像你如果描述以我为中心的话,我觉得这个就是一个什么呀,哎面向什么呀,过程啊是面向过程。过程啊,以我为中心啊,咱们先不说这个以我为中心,一说越说咱们越麻烦啊,越说咱们越麻烦,那么这块咱们先这样去理解,面向过程呢是什么呢?哎,是主要注重的是第一步干什么,第二步干什么,注的是因果关系啊,注重注重的是一个步骤啊,因为A所以B,因为B所以C,因为C所以。
08:13
面向过程中没有对象的概念啊,面向过程中没有对象的概念。只是实现这个功能的。步骤以及因果关系啊因果关系,那么各位采用面向过程的方式开发有什么样的缺点?面向过程的方式有什么样的缺点?面向过程有什么缺点?面向过程有什么优点?他其实也有优点,也有缺点,对吧,它的缺点是什么呀。面向过程当中掺杂了大量的因果关系,对吧,其中有一个因果关系出问题之后,整个系统是不是就完蛋了?
09:00
对吧,那就是因为A模块对吧,所以我们B模块B因为B模块,所以C模块,因为C模块所以D模块,然后这块呢,哎,我们因为所以因为所以因为所以就整个这个程序啊,你都是哎采用这种因果关系这种步骤去实现的,假设其中有一步出问题了,那你整个这个系统是不是都会受到影响,这是面向面向什么。面向过程啊。啊,面向过程最主要是。是每一步,是每一步。每一步的什么因果关系啊,其中其中啊,呃,这个A步骤啊,因为哎,A步骤因果关系到B步骤啊。A和B联合起来形成一个啊子模块,子模块和子模块之间又因为什么呀,哎,因果关系结合在一起。
10:11
假设其中任何一个因果关系出现问题啊,或者我们说的叫做错误啊,此时整个系统的运转都会出现问题。啊,都出现问题。就是代码和代码之间的耦合度太高。扩展力。太差,那这个说这个东西可能就有点儿,呃,太高深了啊,什么叫耦合度啊。我说一下啊,我在这里给大家解释,耦合度就是代码和代码的粘连程度,就是就是说你你你你你你你应该听说过焊接对不对,焊接我们把一个啊部件和另外一个部件怎么着焊接在一起,你看有一些焊将啊,它怎么着呢,它就焊的比较结实,但有一些焊将呢,它可能焊的就就不是那么结实啊,就是说我们焊接的越结实就表示什么,就表示耦合度就怎么了越高。
11:15
啊,如果就是焊接的之间怎么着啊啊,你想你比如说你比如这么说吧,各位我问大家个问题啊。大家知道螺栓跟螺母吧?螺栓螺母拧在一起,它们叫耦合度高吗?各位。螺栓知道吗?螺栓和螺母。凝在一起。耦合度高吗?各位,螺栓螺母凝在一起耦合度高吗?哎?这是什么呀,耦合度低的。对吧,哎,这是耦合度低的,因为这个螺栓螺母可以再分开,对吧,哎,螺栓螺母可以再分开再拧开。
12:14
他们之间有接口是不是啊,他们之间是有什么接口的啊,是有接口。对吧,哎,这叫耦合度低啊,这叫耦合度低,那如果说你把螺栓和螺母用焊条焊在一起呢。这样的话耦合度是不是就高了?对吧,啊,你说螺栓啊,螺栓螺母啊,拧在一起之后。凝在一起。之后啊,再用什么呀,焊条是不是焊接在一起。耦合度高吗?那当然是高啊,这个耦合度就很高了啊,耦合度就是粘接程度啊,粘接程度粘连程度。
13:13
程度啊。往往。耦合度高的,扩展力就差。我不知道大家理解不理解这个这个意思啊,就是往往耦合度高的扩展力就差一些啊,扩展力差,你比如说大家都见过这个灯泡吧,灯泡和灯口的关系,大家见过吗?就是那种比如说白炽灯对吧?啊白炽灯你们家假如说有个灯泡是不是啊,您在这个灯口上,那我问大家,假如说有一天啊,这个灯泡坏坏了,灯泡坏了,灯泡坏了,那我问你,你能不能哎换个灯泡啊。你可以去小卖店或者超市再买一个白炽灯,把原先那个坏的白炽灯给它拧下来,然后换成个新的,对不对?哎,这叫扩展力强还是差呀?
14:00
各位,这叫扩展力强还是差呀?来给个回应各位啊,咱们互动一下,这叫扩展力强还是扩展力差,就是你们家那个白炽灯拧下来对吧,然后再换一个新的,这叫扩展力强对吧?啊,这叫扩展力强啊,那扩展力强的前提就是耦合度要低一些啊,只有耦合度低扩展力才强,耦合度高扩展力就差啊,它是这样一个一个一个一个关系啊。就有这样一个关系,各位耦合度高。导致什么?扩展力差,耦合度低导致什么呀,扩展力强。耦合度啊,低的导致扩展力强。啊,比如说灯泡。啊和什么呀,这个灯口。关系啊,灯泡灯,灯泡灯口关系螺栓。螺母关系对吧,它们都属于什么呀?低耦度高扩展力,低耦合度高扩展力啊,那耦合度高导致扩展力差,我问大家一个问题啊,大家听没听说过啊,集成显卡听说过吗。
15:11
集成显卡听说过吗?就是计算机显卡。不是独立的。是集成到主板上的。听说过吧?集成显卡就是大家知道你们玩游戏的时候,那个画面显示的好还是不好,跟什么有关系啊,是不是跟显卡有关系啊,显卡越高性能是不是越好,你显示的这个这个这个游戏的画面是不是就越好啊?如果你显卡比较低的话,是不是你显示的这个游戏的画面就是比较虚啊?对不对,哎,大家都是玩游戏的,我觉得应该是问题不大啊,那对于我们老式的这个台式计算机啊,台式电脑,对于台式的啊,老式的台式的计算机,那那个时候呢,我们其实显卡都是集成到主板上的,这个显卡没有独立的这个部件,它不像现在啊,他为了提高这种显示的性能啊,它专门有一个部件,这个部件是什么?是显卡,然后显卡插到主板上,这个这个这个就能用,然后原先那个老的情况是没有这个独立的这个显卡部件,显卡是放在这个集成到那个主板上的,那假如说这个显卡要是坏的话,那个主板是不是就坏了,各位。
16:22
大家想一想显卡,如果那个集成显卡坏的话,那个板子是不是也就不能用了,那个主板是不是也就也也得换啊,是不是,所以这样的话就相当于他们的耦合度啊,是非常高的,那导致扩展力就特别差,对吧,你你像现在独立显卡有什么好处啊,独立显卡。独立显卡有什么好处啊,假如说显卡坏了,我们能不能把显卡拔下来,从那个嗯那个京东上买一个那个呃,买一个那个那个那个显卡我们买回来之后,能不能再插到这个这个这个主板上,这样的话,这个扩展力是不是就强了?对吧,哎,扩联强了,所以说如果是集成显卡的话,就类似于什么呀,面向过程的一种开发方式啊,面向过程的一种开发方式,注意啊,如果是集成显卡就相当于面向过程。
17:05
啊,过程。如果是这个独立显卡的话,就相当于什么呀,是面向对象的啊,面向对象的。没对象。你比如说采用啊面向过程的方式开发一台电脑或者计算机会是怎样,各位。啊,采用面向对象的方式开发一台计算机会是怎样?啊,各位大家想想想象过这个问题吗?就是如果是采用面向过程的方式开发一台计算机,就是大家你你眼前都是笔记本电脑,对不对啊,都是笔记本电脑,那么如果你的笔记本电脑采用的是呃,面向过程的一种方式进行开发的,那这个时候。是什么情况啊各位。
18:03
这台计算机将没有什么。任何一个部件对吧。是不是,哎,采用面向过程的方式开发一台计算机。啊,会是怎样呢?啊,这台集团将没有任何部件啊,所有的。都是什么呀,融合什么在一起的。啊,你的这台计算机是一个实心的。实心的啊,没有部件的。没有,所有的都是融合在一起的啊,你的这台电脑是一个实芯的啊,没有部件的哎,一体机。一体机。哎,假设什么呢?假设啊,这台计算机的任何一个。
19:08
部位或者这台一体机。假设这台一体机的任何一个部位,任何一个部位出问题,整个电脑就得扔了。整个电脑啊,整个计算机就不能用了,就不能用了。须扔掉了啊,必须扔掉了,我觉得这个大家去这样去想一想啊,就如果你采用变向过程的方式去开发一台计算机的话,那可能就是说,哎,没有任何一个部件对不对,都是融合在一起的一体机,然后呢,你其中任何一个部位啊,那不叫部件啊,你看我这用词很精准啊,叫部位,任何一个部位出问题了,哎,我们整个计算机就不能用了,必须得扔掉了,这个就是我们采用面向过程的方式进行开发,没有对象的概念。没有对象的概念啊,没有对象的概念。那么什么是对象,大家可能还不太清楚是吧?那再往下呢,采用面向对象的方式开发一台计算机会是怎样啊?诶,内存条是一个对象,主板是一个对象是不是?哎,CPU是一个对象。
20:09
对吧?哎,硬盘是一个对象,然后这些对象组装在一起,形成一台计算机,假设其中CPU坏了。我白我的意思吧,哎,采用面向对象的方式的话,它主要站在一个角度,就是对象,对象的一个角度,你就是内存条是一个对象。主板是一个对象,CPU是一个对象,硬盘是一个对象啊,然后把这些对象组合在一起,形成一台计算机,假设CPU坏了,我们可以换呀,假设内存条坏了,我可以换呀。对不对,哎,假设内存条换什么东西来着,咱们的笔记本是属于C加加形式的吧。
21:00
笔记本不是笔记本也是面对象啊。笔记本,你你你你那个笔记本没有没有没有鼠标吗。啊,你那笔记本有没有鼠标,你那鼠标得想一想。你那笔记本里边有没有那个,嗯,内存内存内存条,你那笔记本里边有没有主板,你的笔记本里边有没有这个,呃,硬盘都有吧。都有啊,那笔记本不属于一体机啊,笔记本也是可以拆的呀,可以拆啊,可以拆可以拆啊。面向过程呢,它的缺点其实就是耦合度高,扩展力差啊,就是耦合度高扩展力差。这就是面向过程的一个一个一个。缺点啊。
我来说两句