00:00
大家好,我是海波老师,接下来我们来学习Java语言中非常重要的一个章节,面向对象。那么提到面向对象啊,相信大家肯定不会很陌生,因为Java本身就是一门面向对象的编程语言,既然选择学习Java,同学们多多少少都应该知道或了解过什么是面向对象,对吧?但说实话啊,想要用一两句话就能解释清楚这个概念,其实还是有一定难度的。所以我们这里呢,先不着急讲解这个面向对象的概念,而是先回过头说一下什么是计算机,之前就提到过啊,计算机是一种用于高速计算的现代化智能电子设备工具,主要目的呢,就是为了快速、方便、智能化的解决生活中的问题。既然计算机是一种工具,既然要解决生活中的问题,那么如何让计算机按照我们预先编排好的指令执行就是非常重要的了。我们前面讲过了啊,指定代码的顺序执行其实是开发中比较常见的代码编排方式,所以为了解决生活中的问题,使用计算机语言将生活中的问题啊按照顺序分解成一个一个的执行步骤,就显得非常的自然。
01:03
然后再通过计算机按照编排的步骤顺序一步一步的执行,那问题不就解决了吗?这个思路啊,没有任何的问题,所以我们早期使用C语言编写代码的时候,就是以解决问题的步骤和过程为中心来设计和开发程序的,这种编写程序的思路和思想呢,我们就称之为叫面向过程编程。那举个例子啊,要把大象装进冰箱里,总共分几步啊?这就是一个经典的面向过程的例子,它总共分三步,对吗?第一步打开冰箱,那第二步呢,就是把大象放进去,第三步把冰箱门关上,这个我相信大家都能明白吧。还是挺简单的对吧?好了,下一个问题,把小白兔放进冰箱里总共分几步呢?这个问题的答案我相信很多人都是知道的,对不对?它是不是分四步啊,哪四啊?第一步打开冰箱门,第二步呢,把大象拿出来,第三步把小白兔放进去,第四步关上冰箱门诶,当大家第一回听到这道题和答案的时候,是不是也和我一样,感觉非常懵啊?
02:04
之所以会懵呢,就是因为啊,我们在思考这个问题的时候,把这两个问题啊,我当成了独立的问题,所以我们的思路呢,就被题目中的分几步给局限住了,而恰恰因为两个题目很像,所以啊,我们第二个问题呢,就自然就得到了也分三步这样的答案,但是呢,当我们知道了所谓的正确答案之后呢,才发现第二个小白兔的问题呢,其实和第一个大象的问题是连在一块儿的。所以我们才会很懵,为什么呢?因为我没有考虑到嘛,当然了,我们也会会心一笑啊,心里骂一句,就这个呀,对不对?这里的题目和答案其实无所谓对错了,但是恰恰说明了当我们碰见问题的时候,如果每个问题我们都独立的去思考的话,简单但是思路并不一定正确,但如果考虑问题的时候呢,能够考虑问题本身内在的联系,那样的话,思路会变得复杂,但是会更清晰,你把很多的关联考虑进去以后,你的正确性也会更高一些,对吗?当然了,这么说也不一定是对的啊,因为题目本身就是一个用于活跃气氛的脑筋急转弯问题,我想说的其实是面对问题时,我们思考方式是什么样子的。
03:10
早期啊,我们解决问题的时候,更看重解决问题的步骤和过程,所以需要将过程梳理好,将步骤规划好,然后再执行,把问题解决就可以了,这个本身是没有任何问题的,但是如果我们要解决很多类似的问题的时候,每个问题的过程都要重新梳理,每一个步骤咱们都要重新规划,就会变得比较麻烦,很不方便,效率低的问题啊就会凸显出来,那有没有什么好的办法呢?这里呢,我们换个角度想一想。既然我们把步骤作为核心来分析啊,它存在一些问题,那么我们能不能以问题本身为核心来进行分析呢?在分析问题的时候,以问题所涉及到的事物为核心去分析,比如啊,我想养一个宠物,那我可以以宠物为核心去分析啊,哪一种动物和人更亲一些,那更好养一些,他的生活习性我更接受一些,对不对?再比如。
04:02
我想学习啊计算机编程语言,那我可以以计算机编程语言为核心来分析啊,哪个语言更简单,理解起来更容易,学习体系更丰富,那学完以后呢,我的工资待遇会更高,对吗?诶,然后呢,我再根据我自身的特点去选择学习,你看这不就是分析的方式嘛,而这种方式呢,其实恰恰更贴合我们生活中的分析问题的方式,所以啊,我们分析问题时,完全可以以问题所涉及到的事情和物体为核心进行分析。这里的事情和物体呢,我们就统称为叫事物,所以呢,也可以理解为是以事物为核心的分析,在英文中,事物呢被翻译成叫object,而object这个单词呢,还有另外一个中文翻译就是对象,所以啊,以事物为核心的分析方式和编程方式,我们更常见的说法呢,就是面向对象编程好了。引出面向对象编程的概念之后,我们最后总结一下,所谓的面向对象啊,其实就是以具体的事或物为中心进行分析的意思,这种方式更符合日常生活中分析问题的思考方式,所以啊在现代计算机语言中用的非常多。面向对象是一种编程思想,它是一种分析问题和解决问题的方式,那既然啊是一种思想,那么面向对象就不是语法了,我们通过编程语言的语法来体现面向对象的这种思想。
05:24
Java语言啊,就是面向对象的,所以也就提供了很多用于面向对象的语法,后续的课程中我们会一一进行讲解,通过语法让大家对面向对象编程有更深的理解。好了,同学们,我们的面向对象就先介绍到这里。
我来说两句