面向对象与基于对象

转自:http://vinge.bokee.com/6236738.html

关键词面向对象    基于对象                                          

 

面向对象:

定义一: 面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。 

定义二: 面向对象方法是以认识论为基础,用对象来理解和分析问题空间,并设计和开发出由对象构成的软件系统(解空间)的方法。由于问题空间和解空间都是由对象组成的,这样可以消除由于问题空间和求解空间结构上的不一致带来的问题。简言之,面向对象就是面向事情本身,面向对象的分析过程就是认识客观世界的过程。 

基于对象:

没有找到正式定义,只找到两点理解:

理解一:基于对象是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。  

理解二:通常“基于对象”是使用对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说“基于对象”没有继承的特点。现在的很多流行技术都是基于对象的,它们使用一些封装好的对象,调用对象的方法,设置对象的属性。但是它们无法让程序员派生新对象类型。他们只能使用现有对象的方法和属性。 

综合起来思考,“面向对象的语言”是指语言本身必须支持封装,继承,多态三大特点。“基于对象的语言”是指语言本身只支持封装,不支持继承(“多态”表示为父类类型的子类对象实例,没有了继承的概念也就无从谈论“多态”) 。这里的“面向对象”、“基于对象”更多的是谈语言设计者设计语言时采用的思想乃至所赋予语言的基调,有别于我们常说的“面向对象的程序设计”,“面向对象的程序设计”更多的是说程序员用一种别人设计好了的语言制作软件时脑海里的一套认识/方法论。

也许能有这么种说法:一种基于对象的语言+面向对象的程序设计方法 来开发软件?

哈哈,不知对错,暂且如此,继续学习。

 

补:

David Flanagan认为JavaScript是一门面向对象的语言,因为它大量的使用了对象并且实现了自己的以原型为基础的继承方式(也许这就是JavaScript另类的地方,它用不同寻常的方式达到了同样的效果)。并且JavaScript可以很好的模拟以类为基础的面向对象的编程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值