面向对象和面向过程的区别和联系

————前车之鉴,后车之师:对面向对象的理解

1.考虑问题的过程和思想的转变:
在对问题的考虑时人的主观思维起到重要作用,遇到问题会对整体问题进行考虑看是否遇到过类似问题,人为的向经验靠拢,对问题事件进行分析,归纳,延伸,将多个经验组合在一起对更大的问题进行处理。

人能够解决问题的复杂性直接取决于抽象的类型和质量,看是否能够对问题进行拆分,将一个大的问题转化为多个小的问题,所谓的类型是指所抽象的是什么?就是问题的一部分,例如:所有的语言都提供抽象机制,第二代语言汇编语言就是对底层语言的轻微抽象,而第三代语言是对汇编进行的抽象出现了命令式的C、BASIC等。但是这些抽象是针对计算机而言的,是为了基于计算机的结构更好的对硬件进行控制,而不是直接为了方便解决问题所以面对更大的代码量就显的略有不足(因为问题更加复杂导致代码繁杂)。所以必须建立起在计算机模型和实际待解问题之间的关联,这种映射是困难的,因为编程语言的功能限制所以并不可行(面向过程是不够的)

这就出现了只针对待解问题建模,早期的语言例如LISP和APL都选择了针对问题的思路进行编程(分别对应“所有问题最终都是列表”和“所有问题都是算法形式”),还有将问题转换为决策链的语言和基于约束条件的编程语言,但是这些语言都有着局限性,这时就体现出了面向对象的优势,因为它的方式非常通用,使人不会受限于任何特定类型的问题,将问题空间中的元素称为对象,程序可以添加新类型的对象使自身适用于某个问题,面向对象是根据问题来描述问题,而不是根据执行解决方案的代码来解决问题。这就体现了面向对象的特征和针对问题的灵活多变
2.面向对象的特点:
Simula 67是第一个支持面向对象的语言,但是之后的Smalltalk是被认为是最纯正的面向对象开发语言,对之后的面向对象语言,C++、java等产生了深远影响,出现了五个基本特性,表现了一种面相对象的设计方式:
(1)万物皆对象:
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值