在think in Java一书中这样表述对象:
1、万物皆为对象。将对象视为奇特的变量,它可以存储数据,除此之外,你还可以要求它在自身上执行操作。理论上讲,你可以抽取待求解问题的任何概念化构建(狗,建筑物,服务)等,将其表示为程序中的对象。
2、程序是对象的集合,他们通过发送消息来告知彼此要做的。要想请求一个对象,就必须对该对象发送一条消息。更具体的说,可以把消息想象为对某个特定对象的方法的调用请求
3、每个对象都有自己的由其他对象所构成的存储。换句话说可以通过创建包含现有对象的包的方式来创建新类型的对象。因此,可以在程序中构建复杂的体系,同时将其复杂性隐藏在对象的简单性背后。
4、每个对象都拥有其类型。按照通用的说法,每个对象都是某个类(class)的一个实例(instance),这里“类”即是“类型”的同义词。每个类最重要的区别于其他列的特性就是“可以发送什么样的消息给他”
5、某一特定类型的所有对象都可以接收同样的消息。例如“圆形”类型的对象同时也是“几何形”类型的对象,所以一个“圆形”对象必定能够接收发送给“几何形”对象的消息。这意味着可以便携与“几何形”交互并自动处理所有与集合形性质相关的事物的代码。这种 可替代性 是OOP中最强有力的概念之一。
Booch对对象提出一个更加简介的描述:对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据(它们给出了该对象的状态)和方法(它们产生行为),并且每一个对象都可以唯一地与其他对象区分开来,具体来说 就是每一个对象在内存中都有一个唯一的地址。