对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。也就是说对象是对属性值和操作的封装。应用领域中有意义的和与所要解决的问题有关系的任何事物都可以作为对象。它既可以是具体的物理实体的抽象,也可以是人为概念的抽象,或者是任何有明确边界和意义的东西的抽象。 对象是数据和操作的封装体。
属性是对象内部所包含的信息,也就是内部变量。 它用来表示对象的静态特征,一般只能通过执行对象的操作来改变。 某一时刻的属性值表示对象的一种当前状态。
方法就是对象所能执行的操作,操作的作用是设置或改变对象的状态。对象的方法把对象的内部变量包裹、封装、保护起来,使得只有对象自己的方法才能操作这些内部变量,它是对象与外部环境和其他对象交互、通信的接口,对象之外的其他对象可以通过这个接口来调用对象的方法,操纵对象的行为和改变对象的状态。
面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为“消息”。消息是一个对象与另一个对象之间传递的信息,它请示对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。一个消息由接收消息的对象的名称、消息标识符(即消息名)、0 个或多个参数组成。
封装就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。封装是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。用户只看到对象封装界面上的信息,不必知道实现的细节。封装一方面通过数据抽象,把相关信息结合在一起,另一方面简化了接口。封装性可降低开发过程的复杂性,提高效率和质量。
将属性、操作相似的对象归为类,即是具有共同属性、共同方法的对象的集合。因此,类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。
继承是面向对象的方法的一个主要特征。继承是使用已有的类定义作为基础建立新类的定义技术。已有的类可当作基类来引用,则新类相应地可当作派生类来引用。一个类的上层可以有父类,下层可以有子类。一个类直接继承其父类的描述(数据和操作)或特性,子类自动地共享基类中定义的数据和方法。
对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性。