面向对象的三个基本特点(对面向对象的一些思考)

下面内容纯属随手记,是偶然的一时感悟,是特定时间的一个思考,可能存在语句不通顺、前后矛盾的地方(当时思想活跃,思维跳跃跨度大)能理解就理解,不能理解请忽略,如果有严重错误,欢迎指出;如有类似思考或感悟强烈希望分享出来,大家共同学习,下面我们就来聊聊关于面向对象的三个基本特点?接下来我们就一起去了解一下吧!

面向对象的三个基本特点(对面向对象的一些思考)

面向对象的三个基本特点

下面内容纯属随手记,是偶然的一时感悟,是特定时间的一个思考,可能存在语句不通顺、前后矛盾的地方(当时思想活跃,思维跳跃跨度大)。能理解就理解,不能理解请忽略,如果有严重错误,欢迎指出;如有类似思考或感悟强烈希望分享出来,大家共同学习

Java是一门面向对象的语言,什么是面向对象呢?我这里也不想说什么封装、继承、多态,也不想说什么五大基本原则,因为乍一看这些词,很难联想到这是在为了讲清楚什么是面向对象而抽象出来的一些重要概念。然而很多教材、书籍却恰恰都是利用那些原则来解释面向对象的,总感觉这些概念是不是提出的有些过早了——急于把一些重要的概念性的东西普及给读者,而读者因不熟悉,随着不断的学习,很容易就忽略了那些概念,最终发展成了编程机器,而不知其思想(如数学公式的推导,数学教师可能会这样教我们:看见这个题型,我们就要那样解。这就会造成虽然结果是对的,但我们不知道为什么要这样做,这样做每个步骤带来的是什么?我们如何一步步的接近正确答案的?这样做的依据是什么?我们这样做的缘由是什么?这样做可以得到什么(每个步骤)?),当然,我也不是找事,更不是说教材是错误的,就是为了分享一下思想层面上的、对面向对象的个人理解。

面向对象是一个编程的方法论,相信看过Java类编程书籍的同学,一定对“世间一切皆对象”这句话有很深的印象吧。一切皆对象,这句话其实也不空,它就像一个对面向对象有相当了解,甚至是创造者对初学者就面向对象概念的一个非常简洁的介绍、呐喊。“一切皆对象”,我们不要急于等待下文,如:那接下来呢?你接着讲啊;而是应该去思考,这位了不起的宗师说的“世间一切皆对象”是想说什么呢?这句话本身有什么含义呢?世间都有啥呢?在这个语境中,对象是不是就是现实中的一个个个体/实体/物体呢?又了这些问题的答案,或者带着这些问题,或者带着这些问题的个人理解去验证,使用这样的方法去学习/理解一些抽象概念才是正确的“学习”。

其实“世间一切皆对象”这个语境中,完全可以把对象认作为现实中的个体/实体/物体等等,那么他们都有什么特征呢?代号(对应到个体上就是名字等描述信息,一个属性的集合,引出属性的概念),行为(能干什么事,有什么用,可以做什么动作,引出行为的概念)。科学家对这些特征进行了归类,形成了生物、动物、植物,人类,动物等等归类,引出类的概念,人细分为男人、女人(引出继承),男人女人都有骨骼,但男士骨骼较大,女士较少,男士胸小,女士胸大(引出多态);人的特性,狗的特性(引出封装),相信这样一开始去着重理解面向对象以及“世间一切皆对象”的含义比直接理解干巴巴的概念要好得多。

不要觉得我举的例子很牵强,实际上面向对象方法就是一个模拟现实世界的方法,编程的很多时候都是在思考相关主体在现实中的组成、职责以及归类(抽象的过程),然后使用面向对象的编程语言将相关主体表示出来。使用面向对象语言编程是快乐的,因为你此刻仿佛是造物主的追随者,拼命的尝试仿造造物主的杰作[呲牙],努力的抽象着某些主体的自身特征以及对现实的影响。所以学习面向对象是一个非常有趣的编程方法(你正在制造一个个小宇宙啊,你正在推演一些事物啊,你正在提取世间规律啊,能不有趣吗)。

切记,不要把自己变成编程机器。要跳出来,学习思想。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页