对象导论思想
引言
“我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来…除非赞成这个协定中的有关语言信息的组织和分类,否则我们根本无法交谈。"
——Benjamin Lee Whorf
面向对象五个基本特性
1)万物皆为对象
理论上讲,可看做哲学问题上的任何概念化构件(如狗、建筑物、人类),将其表示为程序中的对象。运用上讲,对象可视为奇特变量,它可以存储数据、执行操作。
2)程序是对象的集合,它们通过发送消息来告知彼此所要做的。
在请求对象之前必须对该对象发送一条消息,可将消息想象为对某个特定对象的方法的调用请求。
3)每个对象都有自己的由其他对象所构成的存储。
换句话说,可以通过创建包含现有对象的包的方式 来创建类型的对象。在程序中构建复杂的体系,同时将程序的复杂性隐藏在对象的简单性背后。
4)每个对象都拥有类型。
“每个对象都是某个类(class)的一个实例(instance)”,就是说,每个类最重要的区别于其他类的特性就是”可以发送什么类型的消息给它。
5)某一特定类型的所有对象都可以接受同样的消息。
例如,“狗”类型的对象同时也是“动物”类型的对象,因此一个“狗”对象必定能够接受发送给“动物”对象的消息,意味着可以编写与“动物”交互并自动处理所有与动物性质相关特性的代码,这就叫做可替代性。
对象简洁描述
对象具有状态、行为和标识
Grady Booch对对象给出了一个更简洁的描述:对象具有状态、行为和标识。
指每一个对象都可以拥有内部数据(给出该对象的状态)和方法(对象产生的行为),并且每个对象都可以唯一地与其他对象区分开来(对象的身份标识),即每个对象在内存中都有一个唯一的地址。
面向对象程序思想上传完毕
散会~