面向对象

怎么解释面向对象?如果仅仅只是一种程序设计的方法,好像过于简单了.面向对象应该是很高深的武林秘籍,或者技术(艺术).而一旦一种技术与艺术挂钩,对我来说,就有无限地吸引力.

之所以突然想到面向对象,是基于数据结构课程的复习以及最近正在阅读的资料触发的,以前看书貌似很走马观花,浅尝辄止,也不曾用心去记忆,日子一久,只剩下惨淡的认知.

溯本求源地说,"用数字式计算机解决任何问题都离不开程序设计,而程序设计的实质就是数据表示和数据处理,而这种表示和处理应通过一个渐进的过程逐步完成."教材上的一段文字,很经典地诠释了什么是程序设计.过去的很多教材上,也有很经典的一个表达式:

程序=数据(结构)+算法

恩,一直会觉得加上结构很难理解,原因可能是随着现代计算机技术的发展,很少接触到底层很结构化的东西了.而关于面向对象的程序设计这个表达式似乎可以更新为:

程序=对象+消息

不管怎样,他们的实质是一样的.对象是封装后的数据,实质仍然是数据.而消息传递是对象间动态联系的唯一形式,也是计算的唯一形式,方法是消息的序列,应该可以理解为把算法封装了.

但是似乎,面向对象技术不仅仅只停留在程序设计这一层.一个软件系统的开发过程中,程序设计是后话,更为重要的是前期的需求分析,设计,最后才到程序的实现.所以现在涌现出了很多关于面向对象的软件开发技术,如面向对象分析,面向对象设计面向对象实现.

关于面向对象分析和面向对象设计方面的技术,好像经常把他们统称为:OOAD.不过,这方面的实践经验太少,没有实战经验.很期待,可以找一家专业的软件开发公司,深入学习这方面知识.

另外关于面向对象的实现,也就是面向对象的程序设计语言,java已经真的做得很好了.

不管是关于面向对象的什么技术, 他们都具备面向对象的特征和要素,只要抓住这些本质特性,相信,无论进行什么样的面向对象的软件开发过程,都能游刃有余.以下是网络上找的一些特征和要素:

特征:1.对象唯一性2.分类性3.继承性4.多态性5.封装

要素:1.抽象2.封装3.共享性4.强调对象结构而不是程序结构

具体描述要参考相关资料,不想放上来了.

只是很想说,不管是使用什么技术开发,有一些东西应该是始终不变的,也就是说,要把现实生活中的东西或者说问题,抽象到计算机处理的过程都要经历的流程应该是不会变的:

具体--抽象--具体

也就是,把现实生活中事物,或者叫对象抽象到计算机表达,计算机表达后最终还是要还原成具体的东西,当然这里具体的东西有可能是虚拟的,呈现出来.

这个循环过程,和理论--实践--理论的很像.那么追随哲学的思想,似乎很多问题的哲学思想都是不尽相同的.很神奇.

浅薄地认知着,努力地纪录着.加油.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值