什么是对象(抽象过程)

来源:互联网 发布:知乎电子书导入kindle 编辑:程序博客网 时间:2024/06/01 21:15

说起对象,我们首先要从抽象说起,只有知道了抽象是怎么回事,你才不会对对象只停留在片面的理解层面。

抽象过程:

所有的变成语言都提供抽象机制。可以认为,我们用计算机能解决的问题的复杂性直接取决于抽象的类型和质量,这里说的“类型”指的是“所抽象的是什么?”。学过汇编语言的人都知道,汇编语言是从机器语言演变来的,之前的机器语言就是01码,汇编语言就是对底层的机器语言的轻微抽象。后来又通过把汇编语言抽象,演变出了“命令式”的语言(FORTRAN,BASIC,C等等),这些语言相比于汇编语言,有了大幅度的改进。

C语言相信是每一个计算机专业人士所学的第一门编程语言,像这种在汇编语言上高度抽象过得语言,它所做的主要抽象,任然要求我们在解决问题的时候要基于计算机的结构,而不是我们基于所要解决的问题结构。程序员在写代码的时候,必须建立起“解空间”和“问题空间”的关联,所谓的解空间在这里就是计算机,问题空间就是业务。有经验的程序员都知道,要想建立起这种关联并不是一件容易的事情,如果建立的好,后期会省下很多的维护时间,反之,带来的将是维护不玩的bug。

什么是对象:

我们将问题空间的元素在解空间的表示称作“对象”,对象具有状态、行为和标示。

这种思想的实质是,程序可以通过添加新类型的对象使自身适用于某个特定的问题。例如,银行的一次支付流程,需要的对象有人、资金流等等的对象组成,也就是问题空间是银行的支付,在对这个问题求解的过程中,是通过一个一个的添加新的类型实现的。这就意味着,每一个对象都可以拥有自身的内部数据和行为,并且每一个对象都可以唯一的和其他的对象区分开来,具体的来说,就是每一个对象在内存中都有唯一的地址。

五个基本特性,对编程的思想帮助特别大:

(1)一切皆为对象

(2)程序是对象的集合,他们之间通过发送消息来告诉彼此所要做的,有点像Windows的消息机制。

(3)每个对象都有自己的由其他对象所构成的存储

(4)每一个对象都拥有其类型

(5)某一特定类型的所有对象都可以接受相同的消息