00:00
好,我们的函数呢,我就先说这么多,接下来我们来进入我们的下一章啊,我们还是来先新建我们的笔记文件啊,来直接保存一下,诶往回返一个,我们来一个新的文件夹,我们叫做一个LESSON05,诶,LESSON06啊,LESSON06 lesson06里边我们要创建的是一个还是read read me,点一个MD啊,我们MD,我们的这么一个笔记文件在这里我们来记录一下我们的这个第六章,第六章我们叫一个什么呢?诶,叫做一个对象啊,对象我们英文叫做一个object啊object,那这也是我们一个比较重要的一章啊,我们要来说一下,说一下它,那我们第六章我们第一个要介绍的一个内容,那我们先说什么是对象,这个我们之前就说过了,对吧?哎,什么是对象?哎,什么是对象?这个我们之前说过了,但是在这我们要再反复的再强调。
01:00
对象,那到底什么是对象啊,哎,我们说了对象是什么呀?诶对象是我们这个,诶是内存中,诶是内存中诶专门用来存储数据的一块区域,这句话我们已经反复说了,我们说了内存是一个很大的一块区域,对吧?我们里边有数据,诶有数字,有字符串,有布尔值,哎有我们的什么呀,有我们的序列对吧?列表元组,哎,我们的什么呀,字典,包括我们的集合,我们是不是有各种各样的数据啊,数据要在内存里存在,它不能瞎放,你不能我说这儿放一个,那儿放一个,这儿放一个,对吧?它得有规律的,也就说什么呀,诶我这123必须得有一个专门的去去放这个123,我这有一个列表,必须得有一个什么呀,专门的区域去放这个列表,那也就是说我的一个大的内存,它是不是要分成几个几个的小块啊,那这一个小块实际上就是什么,诶,实际上就是一个什么呀对象啊,所以注意那对象是内存中专门用来存储什么呀数据的一块区域,那对象里边可以。
02:00
分什么呀?诶对象中可以什么呢?诶可以存放我们的各种数据啊,存放各种数据,比如什么呀,诶比如我们的什么呀,数字呀,比如什么呀,哎,比如说我们这个布尔值啊,哎,再比如什么呀,哎,比如甚至什么呀,哎,我们的这个代码,存放代码的是不是就是我们这个函数啊,所以注意说白了,对象里什么都能存,哎我们说了对象就是一个什么呀,是一个盒子,一个容器,我们可以往这个容器里去存东西,当我们需要这些东西的时候,我们是不是可以把这东西给它,给它取出来呀?啊给它取出来,这是我们说一个对象,那对象中我们已经说了,对象中干嘛呀?哎,对象中保存有什么呀?哎,保存有三部分啊,对象什么呢?哎,由三部分组成,这就是一个复习了,我们不再去过细的去说了啊,对象由三部分组成,哪三部分呢?第一部分是我们的什么呀?哎,我们对象的一个标识啊,对象标识我们称为什么呀,叫做一个ID啊。
03:00
第一第二部分是什么呢?哎,是我们对象的一个类型,我们称为什么呢?叫做一个type啊,这一个typeb。第三部分就是我们什么呀,对象的一个值,也就是说对象中保存那个数据,我们可以称它为叫什么呢?做value啊,每个对象都由这三部分组成,那我们当用一个变量去保存对象的时候,它保存是什么呀?哎,保存是我们对象的什么呀?Idd就是唯一标识,在我们c Python里就是内存地址啊,那地址。而我们的对象的ID和type都是不可变的对象,一旦创建它的ID是几,Type是什么?就永远都不能动了啊,永远都不能动了,而它的值是什么呀?有些对象,比如说可变对象,我们的哎,列表是不是就可变的,字典是不是就可变的,而且不可变对象,像我们的这个,诶数字也好,像我们这个字符串也好,它的值是不可变的,那这个是都是我们之前的内容啊,什么时一样再强调了一遍啊,对象就是内存当中存储数据的一块区域,又强调了一遍。
04:00
啊,又强了遍,那接下来我们来说,那为什么对象我们已经很清楚什么了,对吧?我们学过很多对象了,学什么字符串啊,学什么数值啊,学什么序列呀,学什么字贬呀,学什布尔值啊,学什么捺,这些是不是都是我们之前学的对象,对象是什么,其实对于我们来说我们已经很清楚了,那我们为什么要单独拿出一张来讲这个对象呢?啊来讲这个对象呢?那这里边我们要说一个东西,叫做一个面向对象,面向对象叫什么?诶我们英文叫做一个oop,啊做一个oop叫做一个面向对象,啊oo呢就是什么呀?Oo就是面向对象,诶P呢叫什么呀,叫param,叫编程语言,那oo言就是全名,应该叫做一个面向对象的编程语言,所以这里我们要说一句话叫什么呢?哎,我们的Python Python是一门我们叫做一个面向对象的编程语言啊,面向对象的编程言,那面向对象是什么意思,面向对象什么意思?其实这个东西很好理解,我们不用把它。
05:00
解特别深,面向对向,我说我面向你是什么?是不是我就我对着你啊,哎,我面向谁是不是就是我对着谁啊,我面向一只猪,那就是我对着一只猪,我面向一条狗,我就对着一条狗,那我面向对象是不是就是我对象对着对象啊,哎,所以注意所谓的什么呢?哎所谓的面向对象的语言,哎我们简单理解啊,简单理解就是什么呢?哎,就是我们这个Python中的这个所有操作,诶所有操作诶都是通过我们什么呀?哎,都是我们这个通过对象来进行的啊来进行的,那这个也不能说是Python,就是我们什么呀,语言中的,因为我们面向对象语言不只有Python啊,这是我们简单理解,就是说你的一切操作都是来通过对象来进行的啊,通过对象来进行的,就是你要干什么事。第一件事儿先要干嘛,先要找到对应的对象,比如说你想一个数值,你就需要先有一个对象去保存这个数值,你想有一个字符串,你就要先有一个对象去保存这个字符串,你想去调这个函数,你就先要有。
06:00
一个函数对象,这是最简单的理解,我们去对着对象,我们的所有操作都是通过对象来进行的,那再进一步深入的话,我们来说一下为什么会有这种面向对象的语言,那与之对应的我们还有一个叫什么呢?叫面向过程的语言啊,面向过程的编程语言,那什么叫面向过程的编程语言呢?那面向过程它是一个比较一个比较传统的一个编程语言,或者说比较早的一个,或者说它是我们所有语言的一个根本,其实基本上如果你要是呃去往底层说的话,所有语言它都可以理解成是一个面向过程的一个编程语言,那面向过程的语言什么意思呢?哎,面向过程指它的什么呢?哎,值,哎将哎,我们的这个程序的什么呢?哎,程序的一个逻辑,诶分解为什么呢?分解为一个一个的这个步骤啊,一个一个步骤,那通过什么呢?哎,通过对我们这个每个。
07:00
诶步骤的一个,诶抽象来干嘛呢?诶来完成我们这什么呀?诶来完成我们这个程序,诶也就是说面向过程的语言,他把我们要做成一件事儿,想象成是一个一个步骤啊,想象成一个步骤,那这是什么意思,其实这不太好理解,但是其实这个事儿非常简单,但是往往越简单的事儿呢,越不好理解啊,越简单的事越不好理解,所以这块儿啊,我们来举一个例子,我们举一个例子,但是这个例子不是我们现实不是我们程序里的例子,因为这个东西现在用程序来解释的话,不太好理解,我们来用什么呢?我们来用生活当中的例子,诶我们实际上我们的程序其实是不是就是在命令我们的计算机做事情啊,哎,程序就是在命令我们的计算机做事情,而我们生活中我们可以干嘛,诶我们可以命令什么呀?诶命令我们的这个人做事情,诶比如说生活中你是你是老板,你可以命令你的员工去做事情,生活中比如说可能你是一个家里的这个家长,诶。
08:00
诶是一个家的,一个当家做主的人,那这个时候你是不是可以命令你的家庭成员去做事情了,哎去做事情,那比如说我们举什么例子呢?我们举一个例子,就是我们这个孩子上学,诶孩子上学,那你没有孩子,你也当过孩子,对吧?你肯定知道这孩子上学是怎么回事,那我们假如说要用一个诶程序的思想去表示一个孩子上学这个事儿,我们要怎么体现出来,那首先我们这个孩子上学第一件事儿得先干嘛?诶第一件事儿孩子上学你是不是得先叫孩子起床啊,但是叫孩子起床,你是不是你先得起床啊,哎,你先起床,所以这里边我们就说了,第一件事儿是什么呀?诶是妈妈先起床,诶妈妈起床,妈妈起床,对吧?妈妈起床,然后妈妈起床以后,第二件事呢?哎第二件事,诶妈妈是不是要去,诶那首先起床,有时候我们第一件事可能我睡了一宿了,我可能要先干嘛呀,哎,我要先去个厕所对吧,我要先干嘛呀?哎,先上厕所,哎上厕所上个卫生间是吧,方便方便,然后第三件事干嘛呀,哎,上厕所了,我。
09:00
刚起床我是不是要哎洗洗涮涮呀,哎所以妈妈要干嘛呀,哎妈妈要哎洗漱一下啊洗漱一下,哎洗漱洗完漱以后,你也不能马上就要让孩子就起床了,因为我们一般你上过学你都知道,孩子起床以后,一般都是起床以后洗完脸就直接吃饭了呀,所以这个时候妈妈要干嘛呀?诶妈妈要做早饭,哎做早饭,诶做早饭,妈妈做完早饭以后,这个时候是不是可以叫我们这什么呀?诶叫我们这个孩子起床啊,叫孩子起床也就说什么呀,诶妈妈要叫这个孩子起床,诶妈妈叫叫孩子起床,好,孩子起床以后,那接下来是什么呀?哎其实跟妈妈步骤差不多了,叫什么呀?哎孩子什么呀,上厕所,上厕所然后干嘛呢?孩子上完厕所了,第七个孩子要干嘛呀,哎,孩子要干嘛呀,哎要这个洗漱啊,要洗漱洗脸刷牙对吧,刷牙漱口,然后第八个诶孩子干嘛,洗完漱干嘛呀,孩子要吃饭,诶吃完饭以后干嘛呢?诶叫做孩子诶背着。
10:00
啊,我们这个书包干嘛呢?上学校啊上学校,那这个是我们简单的写的一个流程,其实也不简单了,对吧,把我们这个上学的一个步骤给它写出来了,诶那我们要假如说我要用程序去编写的话,如果用我一个面向过程的步骤编写,基本上跟这是一样的,你就把这个步骤用程序表达出来就行了,诶诶妈妈起床了,诶然后呢,诶妈妈要上上卫生间了,对吧,妈妈要洗漱了,洗完漱妈妈做饭,做完饭妈妈要叫孩子起床,孩子然后上厕所,孩子洗漱,孩子吃饭,孩子背着书包上学校,那这个是一个非常非常非常典型的一个什么呢?非常非常典型的一个这个。面向过程的一个编编写方式,也就是说我们把一个事儿,其实这整个事儿,我们的目的就是为了什么,就是为了第九步,我让孩子去上学,就是为了第九步让孩子上学,但是我把这个事情分成了九步,第一步干什么,第二步干什么,第三步干什么,第四步干什么,也就是我把这个事情分成了一个步骤,一个步骤了,那这就是一个什么呀?面向过程的方式,诶,也就是说我的关注点不在于人,我的关点其实并不在于妈妈,也不并不在于孩子,而在于什么,而在于这个事儿,你妈妈要起床这个事儿,妈妈上卫生间这个事儿,妈妈要洗漱这个事儿,然后孩子要干嘛,要背着书包去上学这个事儿,对吧?诶,那我们说了这种编程方式有没有问题啊?哎,其实没有什么太大的问题,你这么一看的话,其实没有什么太大,这很简单呀,我把这事儿分成一个步骤一个步骤给他写出来,然后按照一个步骤一个步骤去完成,不就完了吗?没有什么问题啊,没有什么问题,或者说没有任何问题,但是注意这个是我们的现实生活中,你可以这么说,他没有。
11:38
问题,但是如果你到了我们的程序当中,这里有没有问题?这里有没有问题,哎,当然会有问题了,因为一旦是程序一定注意,我程序可不是写完一个事儿就完了,这个东西我你你你你,假如说我这孩子上学的事儿,可能我每天早上就发生一次就完事了,但是如果他写到我程序里,我就涉及到一个问题,我代码是不是要复用啊,也就说我写完代码我要重复去使用好了,那现在我有这样一段代码,我有这样一段代码,这段代码可能我要用一次,也可能要用两次,也可能要干嘛,我可能要用1000次,对吧,我想要1000次,那我想想你把这段代码都写到这儿,我要重复使用1000次,在1000个地方我要用,那这个时候要怎么办?
12:25
这个时候要怎么办,那我现在这种情况,我用这种传统的面向过程的方式去编写的话,我是不是得把这代代码复制1000次呀,哎,复制1000次,那你想想麻不麻烦,哎,咱们说了复制都不是最麻烦的,麻烦的什么改,麻烦是改,那比如说什么呀,哎,那我这妈妈可能。现在我起完床以后,我想上厕所,可是这妈妈她起完床以后她不想上厕所,我想把这改了,我就不不上厕所了,我改成八步了,这改很正常对吧,很正常,但是问题是现在你已经在1000个位置,是不是把这个东西给复制了,诶你已经在1000个位置把这个东西给它复制过了,复制过以后呢,会带来什么问题?
13:08
哎,你要改,你是不是得在1000个位置去改呀,哎非常非常麻烦,那现在我们要解决这个问题怎么办?解决这个问题怎么办?哎,那我们先说一下啊,我们先说一下,哎面向过程的编程思想啊,它是一种啊,包括我们面向过程啊,包括我们这个面向对象,它都属于一种编程思想,面向过程的编程思想将什么呢?诶将我们一个这个功能,诶分解成么呢?诶分解为什么呀?诶分解为一个一个小的,哎小的步骤,或者说是一个小的程序,我们什么呢?诶我们通过诶完成诶这一个一个的什么呀?诶小的哎步骤来干嘛呢?诶来完成一个什么呀?来完成一个程序啊通过一个一个小的步骤来完成一个一个的这个程序,诶但是它会有一个问题啊,它会有一个问题,但是这种方式编写完了什么呢?诶,但是诶这种方式编写的代码。
14:09
哎,电线代码往往,诶它指什么呀?哎只适用于什么呢?适用于一个功能。什么意思,我这儿我是不是编写了一个孩子上学呀,我这一套代码只适用于这一个功能,叫做孩子上学,那比如说我有一个孩子放学,我干嘛,我是不是还得再编写一套,还得编写一套,或者说我要在其他位置还要用这个东西,我是不是还再写一遍呀,或者说我这个代码发生变化了,他是不是非常的不好改呀,诶非常不好改啊,所以注意这种编写代码的方式往往只适用于一个功能,如果什么呢?诶如果要在什么呢?诶在实现别的功能,实现别的功能,诶往往干嘛呢?诶往往要重新编写代码,诶重新编写代码啊,往老师重新那什么就说什么呀,也就是说它的可用性比较比较低啊,可用性比较低,那同学说老师这你就说你想想它,诶不是可用型啊,是我们这个可复用性比较低,那同学说老师这简单了,咱们之前不是学了函数了吗?对吧,你把这堆代码存到一个函。
15:19
数里。是不是就行了,哎,你把这堆代码给它存到一个函数里,那这样你每一次你说你想执行1000次没问题,你1000次你就调1000次函数不就完了吗?可不可以啊,哎,当然没问题,函数就是为了解决这个问题而存在的啊,函数就是为了解决这个问题存在的,所以我们也可以说叫做函数式编程,对吧?有一种方也是一种编程思想,叫做函数式编程,但是他没这么简单,但是你可以他理解是进一步的一个进化,把代码存到函数里,我是不是就可以去反复调用了,哎,但他们这么理解其实不太准确,但是能不能存函数里呀,当然能存函数里,但是存函数里也仅仅是什么,也仅仅是增加了它什么呀,可复用型,也就是说我让代码干嘛呀,可以复用啊,可以复用,但是我复用是复用了,我这代码干嘛了。
16:09
是不是只完成了这个功能叫做孩子上学呀,哎,孩子上学我要想完成其他功能,比如说我想完成孩子放学,哎,比如说我想完成什么呀,我想完成一个可能不是孩子上学可能什么呢?可能是孩子上培训班儿,可能是让孩子上培训班,那这个时候孩子上培训班跟孩子上学这两个功能是不是非常非常相似,诶非常非常相似,但是可能会有一些地方不一样,哎,比如说孩子上培训上学是从妈妈起床开始的,可能上培训班的时候妈妈已经起床了,他可能不是从这儿开始,他可能是直接从吃完早饭,可能在看电是诶关键视开始的,对吧?诶可能是什么呀,他也不是背着书包了,可能他不需要书包,可能直接就去培训班了,可能他培训班培训的是这个,诶弹琴可能直接拿着拿着琴或者拿着小提琴就去了,对吧,就是它大体上可能是一样的,但是有一些什么呢?有一些细节上是不一样的,但是这个时候呢,假如说啊,假如说我这个函数里边。
17:10
我这九行代码。上培训班跟上小学这事儿,我有八行代码是一样的,我只有一行代码不一样啊,只有一行代码不一样,但是这个时候你能不能直接去重用这九行代码?哎,不能直接重用,因为即使有一行不一样,你是不是也得改啊?诶,你也得改,那同学说,老师你可以把这行代码以函数的形式传进去,的确可以传,但是你想想,那样是不是就增加了我们编程的一个复杂性啊,哎,编增加了我们编程一个复杂性,所以面向过程的编程思想,其实就这么一句话,将我们的一个功能分解成一个一个小的步骤,我们通过完成一个个小的步骤干嘛呢?来完成一个程序,那它有什么优点啊?我们有什么优点?那这种编程方式,编程方式它符合什么呀?哎,符合我们这个人类的思维,什么思维啊?我们就是习惯把一个大事儿拆成一个个小事,然后一个一个完成,各个击破,这功能是不是就完成了?诶符合我们人类思维,编写起来呢,诶编写起来相对干嘛呀,诶相对比较简单啊,相对比较简单,但是我们来说一下,但是这种编写代码的方式往往只适用于一个功能啊,一个功能如果要实现别的功能,即使什么。
18:23
即使功能相差。相差极小极度是吧,极度极小,诶往往也也什么呀,也往往要重新编写代码,所以什么呢?诶所以什么呢?诶所以它的可用可复用性比较低,并且什么呢?诶并且难于维护,并且难于维护,那这个就是我们说的一个。这个这个面向过程编程思想一个不足啊,它有优点也有不足啊,有的优点也有不足,好那接下来我们来说,那应该怎么办,那现在这个是我们一个传统的方式是吧,传统的方式那接下来我们要怎么办?咱们假如说是吧,咱们假如说你是这家的一个主人,是男主人也好,女主人也好,是吧,你要是女主人你就使唤男的,男主人你就使唤女的是吧,那假如说你是一个男主人也好,你假如说现在你想让孩子上学,当然你可能不想亲自去送是吧,你想让孩子妈妈送孩子上学,那这时候你可能要干嘛了,你说孩子妈赶紧起床了,洗完了你赶紧去厕所,洗完你赶紧去去去洗洗脸,去洗完脸赶紧孩子做饭,做完饭把他叫起来,叫完孩子起床,孩叫完孩子起完孩子去厕所,咱们等等这一过程,也就是说你把每一件事儿都跟你家的这个妈妈也好,孩子也好,妈每一件事都跟他交代清楚,你想想这个事儿烦不烦?哎,你会想起来这个事儿是非常非常烦的,首先不仅你烦你的媳妇儿,你的孩子估计跟你过。
19:54
不了一块,可能跟你过了一个月受不了了,你孩子离家出走,媳妇跟你离婚了,因为你太烦人了,你是不是太啰嗦了,我是你是一家之主,我要听你的话,但是你这么跟我啰嗦,是不是谁也受不了啊,哎,谁也受不了,所以一般的家庭我们是怎么去做这个事儿的,比如说你家就是一个比较这个,你就是一个比较霸道的一个主人,你现在是想什么呢?你就是想指挥你的孩子上学,让你的媳妇儿送你孩子上学,或者让你老公送你孩子上学,那怎么办?那我们来说一下,这样就说到什么呀,我们面向对象的编程语言,哎,那一定注意了,我们面向对象,面向对象的编程语言,它关注的什么呢?关注的是我们的什么呀?是我们这个对象啊,是我们这个对象而不是什么呢?而不关注过程啊,而不关注过程,而不关注过程,关注的是对象而不关注关注过程,那我们来看一下我们现在。
20:54
这里边我们说孩子,孩子上学,我们现在说你第一步干什么,第二步干什么,第三步干什么,这个我们是不是说的都是步骤啊,哎,说的都是步骤,那这里边面向对象的编程语言啊,我们关注的是对象而不是过程,那这里边我们现在这种方式就叫关注的什么呀,关注的过程,而我们正常情况下来讲,我们应该是干的,假如说你是加一个特别棒的男主人,你是应该怎么办?其实如果什么样的样子,我就一句话什么样,哎还成吗?
21:22
孩他妈起床,哎,送孩子叫什么呀?哎,叫孩子上学,孩儿他妈起床叫孩子上学,我就说这么一句话,完事了,完事了,你看啊,我这我我可能躺床睡觉,我踹脚,嘿,孩儿他妈赶紧起床叫孩子上学,我就这么一句话,剩下的东西我还用不用说了,你说。你说那他他妈是傻子吗?他起床他不知道先去厕所吗?他上厕所了,他不知道洗脸刷牙吗?他洗完脸刷牙,他不知道给孩子做饭吗?这些事儿孩子他的妈妈是不是都知道?用不用我一个一个去指挥,诶,不用,同样我叫完孩子起床床,他不知道去厕所,不知道刷牙洗脸,不知道吃饭,不知道吃完饭然后背桌上学吗?他实际上也是知道的。所以我要完成这些事情,我不用一步一步的去教给他们,而是干嘛,而是我只需要告诉孩子他的妈妈干嘛呀,你去叫孩子起床上学,这时候的所有的事儿,孩子的妈妈他是不是都会自动去完成了,那你至于他是先去厕所,还是先去洗漱,还是做早饭,还是去买早饭,还是什么时候叫孩子起床,如何如何的,这些事儿我们还用不用关注了?
22:34
不用关注了,因为什么这些事儿是不是都由孩他妈孩孩子他的妈妈自己去解决,自己去判断,那这种语言我们就叫什么叫面向对象的编程语言啊,叫面向对象编程语言,那你就会发现,其实如果你是以这种方式去编程的话。就很痛苦,而你现在我这种是不是等于一行我就代替这九行了,把这些所有的工作都做,把这些所有的工作都,那我们想想你愿意用哪种方式写,那你肯定愿意用这种方式写,你用这种方式你自己的烦,你别人也烦,而用这种方式是不是整个世界都听掉了,哎,都听掉了啊,这就叫做一个面向对象的编成语,还有一个面向过程的,那这里边同学就说了,那这里到底谁是对象,面向对象,面向谁对象?那你看我面向的是谁,我对谁发布指令了,我这里是不是对孩子的妈妈发布指令了,所以这里妈妈就是对象啊,妈妈就是对象,我面向的是谁,谁就是对象,但是是不是只是妈妈睡象,当然不是一定注意,对于我们面向对象的语言来说,面向对象的这个语言来说什么呢?我们一切都是对象啊,一切对象,比如说在这里我们的什么呀?妈妈是对象,还有谁呀,还比较典型谁呀,孩子是对象对吧?孩子是对呀,还有谁呀,哎。
23:54
还有像我们这个书包学校,哎,床食,上厕所,那实际上这些都是什么呀,都是这样,你如果再细分,什么早饭是吧,我洗出这个行为,其实这些都可以是对象,所以注意,一切都是对象啊,一切都是对象,也就是说我们对象什么好处啊,对象什么好处,我们把一系列的数据,比如我们把一系列的数据,一系列的行为全都干嘛,全都保存到一个对象,比如说送孩子上学这个事儿,我保存到妈妈这个对象里,送孩子上学这个事儿我存到妈妈这个对象里,那至于他怎么去送,那都是由这个对象内部来决定,我不管,我只需要达到我一个结果,你把孩子送到学校就OK了,那这些东西都是存到哪儿的,存到这个对象里,而对象是什么,对象就是一个存储数据的一个什么呀,容器啊,存储书据一个容器好处是什么?那我现在说了,我想让你上学,我就告诉你孩子妈叫孩子上学,我想让你带孩子去培训班,我就告诉你孩子妈带孩子去培训班,那对于我来说只是发。
24:54
发布了一个什么呀指令,而真正的细节在哪里?在这个具体的什么呀对象,你只要把对象写好了就没问题了,哎,那至那同学说老师,那你这对象里,那你想想你这你说了还他妈起床叫孩子上学。
25:10
那其实他是不是最终也得实现这个步骤啊,比如说妈妈起床,妈妈上厕所,妈妈洗漱,你是不是也得实现这个步骤啊,的确是他也得做这个步骤,但是区在哪?区别在这些步骤存到哪儿,存到了妈妈这个对象里。存到妈妈这个对象里,那至于他是怎么做的,由妈妈这个对象当中的数据去决定,而我们只要找这个对象就OK了,但是前期写对象会麻烦一点,但是好处就是什么,它可以什么呀,可以复用啊,可以复用那这里啊不太好理解,我们先初步的理解到这个程度你就OK了,你就现在记住了,面向对象比这个面象过程要简单啊,编写要简单,但是实际上是不是说我面向对象我就不用像这种形式去按照次序去编程了,不是啊,不是面向对象只是什么呀,你把这个程序存到了一个对象里,而不是直接去编了,只是存到一个对象里,程序步骤有没有也得写步骤啊,也写步骤,所以面向对象中也是包含这个面向过程的,所以你所谓的说我用面向的对象语言,我是不是几乎不用面向过程了,不是面向过程是基础,你你你干事肯定得一步一步来,只是你这个步骤存到哪之前面向过程这步骤没有地方存,直接写这儿了,而有了面向对象以后,我们可以把这些步骤存到对象里,通过对象来。
26:25
完成这些步骤啊,来完成这步骤,先初步的去理解一下,好,那这里边我们来简单总结一下,哎,我们来说一下面向对象的这个编程思想啊编程思想它干嘛呢?诶他将我们这个,诶所有的什么呢?诶所有的这个功能啊,所有功能统一干嘛呢?统一保存到什么呢?哎对应的这个对象中,哎对应的这个对象中,哎比如什么呢?诶比如我们这个妈妈的功能,哎保存到我们这个妈妈的对象中,我们这什么呢?孩子的功能,哎保存到我们这个孩子的对象中,都会保存到我们这个对应的对象中,那我们说了要什么呢?诶要使用某个功能,要使用某个功能,诶直接什么呢?诶直接找到指什么呀?哎。
27:25
对应的这个对象即可,哎,你说你希望通过你让妈妈送孩子上学,直接告诉妈妈去送孩子上学,所有的事儿全都完成了,细节都在这个什么呀,对象当中啊,细节都在这个对象当中,所以呢,它什么呀,就是你在代码阅读起来干嘛呀,比较简单啊,代码阅读起来比较简单,所以这里边我们来说一下它的特点,刚才我们说了面向过程编辑思想是将一个功能分解成一个小的步骤,而我们是什么呀?将功能存到这个对象里啊,通过这个对象来完成这个功能啊,来完成功能,那我们说了,那我们说了面向对象,哎这种方式。
28:01
这种方式编写的这个代码干嘛呢?诶叫什么呀?诶比较容易阅读啊,比较容易阅读,读起来比较清晰,你一看孩子他妈叫孩子上学,你这业务一看就明白了啊你这看这个一步一步看到第九步你才知道啊原来是让孩子上学,很难看懂,而这个你可能看一句话,你就是不是就已经知道他是让孩子上学呀,哎读起来比较什么呀,哎比较比较容易阅读,并且什么呢?诶并且诶比较什么呀,诶易于我们这个维护啊,易于维护,你要易于维护啊,那你这功能你说了,我这孩子他妈叫孩子上学,那这我要改一个步骤,我是不是得改整个逻辑啊,比如说我想让孩子他妈妈这个什嘛呀,哎你先洗漱再上厕所,你就把23调个位置对吧,调个位置,而且你这调什么哪都得调啊,而现在我是把这些东西是保存到一个对象里的,我这调的时候你该怎么掉怎么掉,比如说你不希望孩子妈先上厕所再洗漱,你希望先洗漱再上厕所,那怎么办呀?你把对象里的步骤改一下就OK了,改完了以后这儿你不用管这儿该怎么着还怎。
29:02
怎么着,因为它是对象内部的事儿,他自己就调了,并且干嘛呀,所有的位置全都跟着调了,因为它是统一保存到一个对象里的啊,统一保存到一个对象里的,所以注意这种方话比较易于维护干嘛呀,哎容易什么呀,哎容易复用,哎容易复用,那这个是我们这是什么呀?哎面向对象的一个什么呀?哎面向对象的一个优点啊,一个优点啊,当然我这说的还是比较简单的啊,比较简单的,然后再来说干嘛呢?哎但是什么呢?哎,但是这种方式编写啊,这种方式编写有同学那老师你说这面相对象是不是,你看我这写一句话,这些九句话是不是就意味着我这个面相对象编写的简单呀,哎大家注意啊,实际上这里边咱们现在这个例子并不简单,为什么不不简单注意了,我当时说这句话的时候,还他妈起床叫他上学的时候,实际上这里边已经包含了九行代码了,只不过这九行代码我没写到这儿,这九行代码我是分别写到了妈妈的对象里,还有什么呀,孩子的对象啊,孩子对象里就说你在这儿,你要整两个对象,每个对象里都要有不同。
30:02
叫什么呀,不同的功能,然后你通过这才能达到这么一个效果,所以它编写起来,这这个例子来说并不简单,但是如果你代码越多,它会越简单啊,越简单,所以呢,我们来说一下,但是这种方式吧,哎,不太什么呀,哎不太符合我们这个常规的思维,常规的思维因为我们想我们做一件事,我们就想第一步干什么,第二步干什么,第三步干什么,这是我们常规思维,而我们往往想不到这种是吧,我直接一句话把这事儿搞定了,哎,那所以就是这种什么呀,这种是我们干活的思维,对吧,我一步一步干这活,先干这活,干这活,而这种是什么呀,这是我们老领导的思维,领导说你干啥,你咔你就去干,这是领导的思维,而这个是我们普通员工的思维,那大部分人都是普通员工,所以这种思维是我们习惯的,而这种思维它并不是大部分人所掌握的一种思维,所以它并不符合我们常规的思维,但是不一定因人而异啊,因人而异,所以什么呢?所以编写起来干嘛呢?诶编写起来要稍微麻烦一点啊,稍微麻烦一点,但是它你只要理解了,你其实不会。
31:02
对麻烦啊,稍微麻烦一点,比这个什么呀,比这个面向过程要麻烦一点,就是说说白了面向过程易掌握啊,易掌握好编写,但是呢,可复用性差,可维护性差,它不适合开发太复杂的程序啊,不适合开发开发开发太复杂程序,但是你说我这代码特别简单,我这我只执行一次,那其实就适合面向过程,它适合编辑什么呀,简单程序啊,编写简单程序,而我们这个面向对象的呢,它。编写起来稍微的会麻烦一点,第一次写不太好理解,没有面向过程那么好理解,但是这个东西你一旦理解了,一旦掌握了,你会发现比这个面向过程好的不是多少啊,不是多少,但是实际上面向过程也是它的一个什么呀,基础面向对象同样也离不开这个面向过程啊,你看面向过程好,这是我们介绍了一下这个面向对象和面向过程,那你就记住了,我们以后都是什么呀,面象对象啊,面向对象诶,那以后我们要完成什么功能,都要干嘛呀,先要找到对应的一个对象啊,那这里边我们简单总结一下是吧,简单归纳一下,诶,简单归纳。
32:09
哎,归纳一下我们面向对象的一个思想,哎,那这里边我们就要说一个俗一点了,是吧?面向对象的编程,所有的面向对象的编程语言,我们都这样,我们分成两个步骤啊,分成两个步骤,哪两个步骤第一步我们叫找对象啊,第一步叫找对象,什么叫找对象?以后我们要用Python去写程序,我们第一件事你要用什么功能,你要先干嘛?找到对应的对象,你说我要存一组数据,那你要先找什么呀?先找这个序列,你说我要想存这个一个建设结构的数据,那你先找什呀?先找字典,你说我想去保存一个这个保存一个数字,那你就先找什么呀?哎,整形这个对象,你说你第一件事儿先要找到对应的什么呀,对象啊,找到对应对应对象,然后第二个事儿叫什么呀?哎,叫做一个搞对象,那什么叫搞对象,对象你找到了,你要让这对象是不一干事啊,你说我要叫孩子起床,你要先找到妈妈这个对象,然后你说让妈妈去干这个事啊,哎,去干这个事儿,那同理,你找完这个对象你找。
33:10
玩这个数字对象,你让他干嘛呀,你让他计算,你还让他计数,还是干嘛,你是要实验功能啊,这叫做一个什么呀,搞对象啊,搞对象这里我先简单说一下,那这个随着我们深入的研究这两个概念,你会这两句话,你会更有一个更深刻的理解,但是不要着急,面向对象这个思想一谈到思想了都不是那么好理解的,但是换句话说,即使现在你不太理解,它不影响我们的编程啊,随着你深入,随着你的开发的这个这个程度的加深,你会越来越深刻的去理解到这个思想,并且深刻的理解到它什么呀的好处啊,这个理解以后甚至对你的工作和生活都会有帮助啊,但是还是那句话,需要一个时间的过渡,好,这个是我们对这个面向对象的一个介绍,我们先来听一下。
我来说两句