对象导论的学习

来源:互联网 发布:北京金和网络北京 编辑:程序博客网 时间:2024/06/10 16:24

所有的编程语言都是在提供一种抽象机制。

可以认为,人们所能解决的问题的复杂性取决于抽象的类型和质量。

这里的“类型”是指“所抽象的是什么”。例如,汇编语言是对底层机器语言的抽象;C语言是对汇编语言的抽象。

虽然这些高级语言在汇编语言的基础上有了大幅的改进,但是它们所作的主要抽象仍然是要求基于计算机的结构来解决问题,而不是基于所要解决的问题的结构来考虑。

面向对象方式将问题空间中的元素及其在解空间中的表示称为“对象”。(还需要一些无法类比为问题空间中元素的对象)

面向对象思想的实质是:程序可以通过添加新的对象使自身适用于某个特定问题

OOP允许根据问题来描述问题,而不是根据运行解决方案的计算机来描述问题。但是它仍然和计算机有联系:每个对象看起来都像一台微型计算机,它具有状态、操作,用户可以要求对象执行这些操作。(它们具有特性和行为)

面向对象语言的五个基本特征:

1.万物皆对象

2.程序是对象的集合,它们通过发送消息来告知彼此所要做的。

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

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

5.某一特定类型的所有对象都可以接收同样的消息。如“圆形”类型的对象同时也是“几何形”类型的对象,所以一个“圆形”对象必定能够接受发送给“几何形”对象的消息。这意味着可以与“几何形”交互的代码,也能处理所有与“几何形”性质相关的类。这种可替代性(substitutability)是OOP中最重要的概念之一。

对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据(它们给出了该对象的状态)和方法(它们产生行为),并且每一个对象都可以唯一地与其他对象区分开来,具体来说,就是每一个对象在内存中都有一个唯一的地址

所有的对象都是唯一的,具有相同的特性和行为的对象构成了”“。

创建抽象数据类型(类)是面向对象程序设计的基本概念之一。

抽象数据类型的运行方式与内置(built-in)类型几乎完全一致:你可以创建某一类型的变量(按照面向对象的说法,称其为对象或实例),然后操作这些变量(称为发送消息或请求;发送消息,对象就知道要做什么)。

例如Bank teller problem问题中,有出纳、客户、账户、交易和货币单位等许多”对象“。这些在程序中除了状态不同其他都相似的对象被归类为对象的”类“。

每一个对象都属于定义了特性和行为的某个特定的类。


0 0
原创粉丝点击