8.1面向对象设计的基本概念 OOP: object-oriented programming) 对象(0 bject): 现实世界中的事物均可抽象为对象,对象是构成程序 的基本单位和运行实体。 类( Class): 定义了对象特征以及对象外观和行为的模板它刻划 了一组具有共同特性的对象。 属性:对象的特征 方法:对象能够执行的一个操作,是和对象相联系的过程。 事件:由对象识别的一个动作
2 对象(Object): 现实世界中的事物均可抽象为对象,对象是构成程序 的基本单位和运行实体。 类(Class): 定义了对象特征以及对象外观和行为的模板,它刻划 了一组具有共同特性的对象。 属性:对象的特征。 方法:对象能够执行的一个操作,是和对象相联系的过程。 事件:由对象识别的一个动作。 8.1 面向对象设计的基本概念 (OOP:object-oriented programming)
类属性 类 圆柱体材质:(无) 圆柱体 对象属性 圆柱体材质:纸质 纸圆柱体大理石木圆柱体 圆柱体 对象圆柱体材质大理石 圆柱体材质:木质 类是对象的抽象描述 对象是具体的,它是类的实例
3 圆柱体 纸圆柱体 大理石 圆柱体 木圆柱体 圆柱体.材质:纸质 圆柱体.材质:大理石 圆柱体.材质:木质 圆柱体.材质:(无) 对象属性 类属性 类是对象的抽象描述; 对象是具体的,它是类的实例。 类 对象
面向对象程序设计正是通过对类、子类和对象等的设计来 体现的,类是面向对象程序设计技术的核心 ■优点 以对象为中心的问题求解方法简化程序设计,更接 近现实世界,可降低开发和维护的费用 提高程序代码的可重用性 可以和各种模型自然的融合
4 面向对象程序设计正是通过对类、子类和对象等的设计来 体现的,类是面向对象程序设计技术的核心。 ◼优点 以对象为中心的问题求解方法简化程序设计,更接 近现实世界,可降低开发和维护的费用 提高程序代码的可重用性 可以和各种模型自然的融合
8.2 类 ☆基类:系统本身提供的内部定义的类称为基类,可用于自定 义类的基础。 ☆子类是以其它类定义为起点,为某一种对象所建立的新类 子类将继承任何对父类所做的修改 用户自定义类:与基类相似,由用户定义,可用于派生子类 ☆类库:存储类的文件,每一个以可视方式设计的类都存储 在一个类库中。类库文件的扩展名.VCX
5 基类:系统本身提供的内部定义的类称为基类,可用于自定 义类的基础。 子类:是以其它类定义为起点,为某一种对象所建立的新类。 子类将继承任何对父类所做的修改。 用户自定义类:与基类相似,由用户定义,可用于派生子类。 类库:存储类的文件,每一个以可视方式设计的类都存储 在一个类库中。类库文件的扩展名 .VCX 。 8.2 类
Visual Foxpro的基类 复选框 列* 命令按钮命令按钮组 组合框 容器 控制 自定义 编辑框 表单 表单集 表格 标头* 图象 线条 列表框 OLE绑定OLE容器选项按钮* 选项组 页面* 页框 分隔符 形状控制微调控制文本框 计时器 工具栏 注:从下述 Visual foxpro基类中,可以派生子类或创建对象, ”表示这些类是父容器的集成部分,在类设计器中不能舌类
6 Visual FoxPro 的基类 复选框 列* 命令按钮 命令按钮组 组合框 容器 控制 自定义 编辑框 表单 表单集 表格 标头* 图象 标签 线条 列表框 OLE 绑定 OLE 容器 选项按钮* 选项组 页面* 页框 分隔符 形状控制 微调控制 文本框 计时器 工具栏 注:从下述 Visual FoxPro 基类中,可以派生子类或创建对象, “*”表示这些类是父容器的集成部分,在类设计器中不能子类 化
类的特征: ◆封装性:( encapsulation) 隐藏了类中对象的内部数据或操作细节,只看到外表信息。 继承性:( inheritance) 任何类都可以从其它已有的类中派生,新类保持了父类中的 行为和属性,但增加了新的功能。体现了面向对象设计方 法的共享机制。 多态性:( polymorphism) 相同的操作可作用于多种类型的对象上,并获得不同的结果。 抽象性:( abstraction) 提取一个类或对象与众不同的特征,而不对该类或对象的所 有信息进行处理
7 类的特征: 封装性: (encapsulation) 隐藏了类中对象的内部数据或操作细节,只看到外表信息。 继承性: (inheritance) 任何类都可以从其它已有的类中派生,新类保持了父类中的 行为和属性,但增加了新的功能。体现了面向对象设计方 法的共享机制。 多态性:(polymorphism) 相同的操作可作用于多种类型的对象上,并获得不同的结果。 抽象性:(abstraction) 提取一个类或对象与众不同的特征,而不对该类或对象的所 有信息进行处理
类的分类: 容器类( Container classes是包容其他类的基类 容器可以包含其它对象 容器可以作为所包含的对象的父对象 允许访问包含的对象 控件类( Control classes)是可以包含在容器类中的基类 控件对象可以包含在容器中 不能作为其它对象的父对象
8 容器类(Container classes)是包容其他类的基类 容器可以包含其它对象 容器可以作为所包含的对象的父对象 允许访问包含的对象 控件类(Control classes)是可以包含在容器类中的基类 控件对象可以包含在容器中 不能作为其它对象的父对象 类的分类:
Visual FoxPro的容器类 容器 能够包含的对象 命令按钮组命令按钮 容器 任意控件 自定义 任意控件、页框、容器和自定义对象 表单集 表单、工具栏 表单 页框、任意控件、容器或自定义对象 表格列 标头对象以及除表单、表单集、工具栏、计时器和其 他列对象以外的任意对象 表格 表格列 选项按钮组选项按钮 页框 页面 页面 任意控件、容器和自定义对象 项目 文件、服务程序对象 工具栏 任意控件、页框和容器
9 Visual FoxPro 的容器类 容器 能够包含的对象 命令按钮组 命令按钮 容器 任意控件 自定义 任意控件、页框、容器和自定义对象 表单集 表单、工具栏 表单 页框、任意控件、容器或自定义对象 表格列 标头对象以及除表单、表单集、工具栏、计时器和其 他列对象以外的任意对象 表格 表格列 选项按钮组 选项按钮 页框 页面 页面 任意控件、容器和自定义对象 项目 文件、服务程序对象 工具栏 任意控件、页框和容器