Java面向对象软件开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 对象与类的关系

对象由属性(Attribute)和行为(Action)两部分组成。属性用来描述对象的静态特征,行为用来描述对象的动态特征。

类是具有相同属性和行为的一组对象的总称,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分,类是对具体对象集合的再抽象。如“人”这个类它是从一个个具体的人的集合中抽象出共同的静态和动态特征形成的一个分类标准,它不是一个具体的事物;而具体的某个人,如张三是“人”这个类的一个实例,是“人”类的一个对象。因此类与对象是抽象和具体的关系。

类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系。类给出了属于该类的全部对象的抽象定义(标准),包含了该类对象的所有属性和方法,它是对象的“模具”。而对象则是符合这种定义的一个实体。所以,一个对象又称作类的一个实例(Instance),可以由一个类制造出多个实例。当然也可以拿设计图纸和产品来比喻类和对象的关系。当你设计了自行车类这个图纸后,可以按这个图纸创建任意多个自行车对象。当创建了一个类的实例后,系统将为这个对象实例分配内存,此时它就确确实实存在于你的软件世界中了。类是一类事物共性的反映,而对象是一类事物中的一个,是个性的反映。每个对象都有与其他对象不完全一样的特性。例如:你和我的自行车虽然都是自行车,但二者的颜色、质量等就不可能完全一致。

特别提示:

类是抽象的,而对象是具体的,在我们创造的软件世界中一般只让具体的对象去完成实际的工作,正如同我们可以让人类的一个对象(某个具体人)去挑水,而不会让“人”类去挑水。