面向对象 = 对象 + 分类 + 继承 + 消息通信
对象
在面向对象的系统中, 对象是基本的运行时的实体, 它既包括数据(属性), 也包括作用于数据的操作(行为).
所以一个对象把属性和行为封装为一个整体.
封装是一种信息隐蔽技术, 他的目的是使对象的使用者和生产者分离, 使对象的定义和实现分开
一个对象通常可由 对象名, 属性, 方法3个部分组成
消息
对象之间进行通信的一种构造叫做消息, 当一个消息发送给某个对象时, 包含要求接收对象去执行某些活动的信息. 接收到信息的对象经过解释, 然后予以响应. 这种通信机制称为消息传递. 发送消息的对象不需要知道接收消息的对象如何对请求予以响应
类
一个类定义了一组大体上相似的对象.
一个类所包含的方法和数据描述一组对象的共同行为和属性
把一组对象的共同特征加以抽象并存储在一个类中是面向对象技术最重要的一点
是否建立了一个丰富的类库, 是衡量一个面向对象程序设计语言成熟与否重要标志
类是在对象之上的抽象, 对象是类的具体化, 是类的实例, 在分析和设计时, 通常会把注意力集中在类上, 而不是具体对象, 也不必逐个定义每个对象, 只需对类做出定义, 而对类的属性进行不同赋值即可得到该类的对象实例
类可分为: 实体类, 接口类(边界类), 控制类
实体类的对象表示现实世界中真实的实体, 如人和物
接口类(边界类)的对象为用户提供一种与系统合作交互的方式
控制类的对象用来控制活动流, 充当协调者
类与类之间存在一般和特殊关系, 即一些类是某个类的特殊情况, 某个类是一些类的一般情况, 这是一种 is-a 关系, 即特殊类是一种一般类
继承
继承是父类和子类之间共享数据和方法的机制
多态
不同对象收到同一消息, 可以产生完全不同的结果, 这一现象成为多态
动态绑定
绑定: 把一个过程调用和响应调用所需要之行的代码加以结合的过程, 在一般程序设计语言中, 绑定是在编译时进行的, 叫做静态绑定
动态绑定: 在运行时进行, 在运行过程中, 当一个对象发消息请求服务时, 要根据接收对象的具体情况将请求的操作与实现方法进行连接, 即动态绑定.