心内求法

制心一境,住心观性,澄心外照,摄心内证

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  37 随笔 :: 0 文章 :: 120 评论 :: 0 Trackbacks

面向对象和面向过程其实并没有本质的区别。试想,对于面向过程的程序看作一个大的对象,那么全局变量就是属性,全局函数就是方法。只不过这个系统只有一个类。

面向对象是什么?这个话题说起来比较长,要追溯到计算机最初的产生。

最开始图灵用“心内求法”的方式,在思想中构建出了计算机的理论模型——图灵机。简单地说,图灵机是这样一个“输入-输出系统”:输入数据,根据预先编制的程序,改变机器内部的状态,并产生输出。这里面,使得图灵机具有计算能力的关键就是程序,根据需要编制不同的程序,似乎就赋予了图灵机“无限”的计算能力。

后来,冯.诺伊曼用电路实现了图灵机,就是电子计算机。用寄存器处理输入输出,用CPU执行指令进行计算。冯.诺伊曼认识到对于复杂数据的输入输出需要研究数据结构,对于复杂的数据处理需要研究算法。所以提出程序=数据结构+算法。他老人家的这个观点是非常正确的,毕竟计算机是他发明的,原理他最清楚。这也是由计算机的物质基础决定的。

刚开始的时候,人们没期望计算机能干那么多事情,所以按照计算机的“思维”,使用机器语言编写程序告诉计算机该做什么。后来觉得计算机其实很能干,只是跟他说话有点费尽,于是发明了一层层的“翻译程序”,使用越来越接近自然语言的方式编写程序。经过了机器语言-汇编语言-高级语言这么一个过程。

最开始的高级语言是面向过程的,后来才发展到面向对象。其实在我看来,面向对象与面向过程并没有本质的区别。试想,如果我们把面向过程的程序看作一个大的对象,那么全局变量就是属性,全局函数就是方法。只不过这个程序只有一个类,但是整个程序也可以算做是面向对象的。

说了这么多,到底想说什么呢?就是,面向对象其实也没有多“高深”,面向对象的很多原理和面向过程是非常接近的。而且,面向对象编程最基本的原理仍没有超出数据结构和算法。但是,面向对象是其后面向组件,面向服务,面向方面等一系列方法的基础,而且面向对象有其特有的思考问题的方式,即以对象为基础分析和解决问题。这就引出了下一个问题:什么是面向对象的思考问题的方式?



本人的最新博客迁移到http://thinkinside.tk,使用GitHub Pages建立。
我会陆续将所写的文章迁移过去,并进行补充和修正,
欢迎过来围观。
posted on 2006-11-22 13:54 心内求法 阅读(3823) 评论(13)  编辑  收藏 所属分类: 1.制心一境

评论

# re: 面向对象是什么 2006-11-22 18:15 aayz
说清楚了吗?  回复  更多评论
  

# re: 面向对象是什么 2006-11-23 10:34 SeamanWang
呵呵,好像还是不够清楚啊  回复  更多评论
  

# re: 面向对象是什么 2006-11-23 13:08 ZZY[匿名]
引言好长啊~!  回复  更多评论
  

# re: 面向对象是什么 2006-12-06 20:48 雨中风铃
你说了什么了吗?好像没说出什么来啊!!!!!!  回复  更多评论
  

# re: 面向对象是什么 2006-12-07 09:58 心内求法
@雨中风铃
请参考下一篇:http://www.blogjava.net/wanghaikuo/archive/2006/11/24/83185.html

有问题可以交流
  回复  更多评论
  

# re: 面向对象是什么 2007-06-12 20:50
好象等于没有说啊,  回复  更多评论
  

# re: 面向对象是什么 2007-11-27 12:37 haolun
好像真的的等于没说:(  回复  更多评论
  

# re: 面向对象是什么 2007-12-04 15:25 LL
我觉得说地很清楚,加油!  回复  更多评论
  

# re: 面向对象是什么 2008-01-03 11:41 路人

在玩语言游戏吗?说了半天还是没说正题。
在玩语言游戏吗?说了半天还是没说正题。
在玩语言游戏吗?说了半天还是没说正题。
在玩语言游戏吗?说了半天还是没说正题。
在玩语言游戏吗?说了半天还是没说正题。  回复  更多评论
  

# re: 面向对象是什么 2008-02-02 07:54 123
没事,闲得慌呀!  回复  更多评论
  

# re: 面向对象是什么[未登录] 2008-04-02 18:41 kk
说的什么啊,答不对题,什么啊  回复  更多评论
  

# re: 面向对象是什么 2008-11-28 22:53 也来说两句
好像真的真的真的真的等于没说  回复  更多评论
  

# re: 面向对象是什么 2009-06-24 17:50 无名氏
浪费时间,垃圾!  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
 
我常用的博客搜索