面向对象

1.抽象的过程

所有的变成语言都提供抽象机制。可以认为,人们所能解决的问题的复杂性直接取决于抽象的类型和质量。所谓的类型是指“抽象的是什么?”

如汇编语言是对底层机器的轻微抽象,但它们主要抽象要求解决问题时需要基于计算机的结构,而不是基于所要解决问题的结构来考虑。因此程序员必须建立起在机器模型(位于“解空间”对问题建模如计算机)和实际待解决问题的模型(位于“问题空间”如一项业务)之间的关联。这使得程序难以编写,维护代价高昂。

面向对象方式,通过程序员提供表示问题空间中的元素的工具而更进了一步。我们将问题空间中的元素及其在解空间中表示称为“对象”。这种思想的实质是:程序可以通过添加新类型的对象使自身适用于某个特定的问题。面向对象(oop)允许根据问题来描述问题,而不是根据运行解决方案的计算机来描述问题。它仍然和计算机有联系:每一个对象都像一台微型的计算机——它具有状态和操作。

(1)万物皆对象。将对象视为奇特的变量,它可以储存数据,还可以对自身进行操作,理论上来说,可以抽取待解决问题的任何概念化的构件(狗,服务,建筑物),将其表示为程序中的对象。

 

(2)程序是对象的集合,它们通过发送消息来告诉彼此所要做的。想要请求一个对象,就必须对该对象发送一条消息,更具体的说,可以把消息想象成某个特定对象的方法的调用请求。

(3)每个对象都有自己的由其他对象所构成的存储。就是说,可以通过创建包含现有对象的包的方式来创建新类型的对象。因此,可以在程序中构建复杂体系,同时将复杂性隐藏在对象的简单性之后。

(4)每个对象都拥有其类型。按照通用的说法,“每个对象都是某个类(class)的一个实例(instance)”。每个类最重要的区别于其他类的特性是“可以发送什么样的消息给它”。

(5)某一个特定类型的所有对象都可以接收同样的消息。

 

总结:对象具有状态、行为和标识。每一个对象都拥有内部数据和方法,就是每一个对象在内存中都有一个唯一的地址。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值