对象
对象的概念:
广义上讲,对象就是客观世界中的事物,可以是具体的事物,也可以是抽象事物。
狭义上讲,对象表示正在创建的系统中的一个实体。这些对象对于实现系统的完整功能都是必不可少的。
对象的结构:
对象是属性(状态)和方法(或操作)的封装体。属性是由对象的数据结构的内容和值定义的,方法是一系列的实现步骤,它是由若干操作构成的。
对象的状态:
对象的状态实际上是为执行行为而必须存在于对象之中的数据、信息。每个对象的状态都会随着对外界反应而变化。对象的状态具体表现未属性的值。
对象的特点:
对象实现了信息隐藏,对象与外部是通过操作接口联系的,方法的具体实现对外部来说是不可见的。封装的目的就是阻止非法的访问,操作接口提供了这个对象的功能。
对象的接口:
也可称之为协议,是一组对象能够响应消息的集合。
对象的通讯方式:
对象收到发给它的消息后,或者执行一个内部操作(有时称为方法或过程),或者再去调取其它对象的操作。对象是通过消息与另外一个对象传递消息的,每当一个操作被调用,就有一条消息被发送到这个对象上,消息包含了有关操作执行的详细信息。一般来说,消息传递的机制随系统的不同而不同,其组成部分包括:目标对象、请求的操作和相关参数。消息是对象间通讯的唯一方式。对象响应一个消息而调用哪一个方法,由接受该消息的对象自己决定与发送消息的对象无关。
类
类的概念:
类是一组具有相同或相似特征和行为的对象的集合。类是用来描述所属集合中所有对象的属性和方法,即对象的内部结构。对象是根据类创建的,类是创建对象的模板。类中描述了对象的内部数据结构、内部算法和外部接口。
类的实例:
由一个特定的类所创建的对象被称为这个类的实例。任何对象都是某个类的实例。
注:类是抽象数据类型的实现。一个类的所有对象都有相同的数据结构,并且共享相同的实现操作的代码,而各个对象具有各自不同的状态,即表示状态的数据。
继承和派生
继承的概念:
从一个已有的类创建一个新的类的方法。也就是说,一个新的类可以通过对已有的类进行修改或扩充来满足新类的要求。新的类具有已有类的行为,而且还可以修改原有的行为或添加新的行为。因此,继承的本质特征就是行为共享。
继承的特点:
从一个类创建一个新的类称为派生,这两个之间的关键就是继承关系,新的类讲继承已有类的所有属性和方法,并且还可以添加所需要的新的属性和方法。已有的类称为父类,新的类称为资类,父类又叫基类或超类,资类又叫派生类。继承的关系也是客观世界中普遍存在的一种关系。
类的层次:
类可以以一种层次结构来安排。在这个层次结构中,子类可以从比它高的超类中继承得到属性和方法。当对象接收到一个消息后,寻找相应的方法的过程将从该对象所属的类开始,并在该类所处的层次结构中展开,最后,直到找到该方法,或者什么也没找到(出错)。
单一继承和多重继承:
一个子类只有一个父类的继承称为单一继承。一个子类可以从两个以上的父类中继承,称之为多重继承。
多态性
多态性描述的是如下现象:如果几个子类都重新定义了父类的某个函数(都用相同的函数名),当消息被发送到一个子类的对象时,在执行时该消息会由于子类定义的不同而被解释为不同的操作。