第1章-面向对象程序设计绪论
时间:2025-05-11
时间:2025-05-11
面向对象程序设计
面向对象程序设计(C++) 面向对象程序设计(C++)Oriented Object Programming (C++)
第一章 绪论 Introduction主讲: 主讲:宋丽红
面向对象程序设计
第一章§1-1 综述
绪论
§1-2 面向对象程序设计 §1-3 面向对象程序设计的挑战 §1-4 面向对象方法学
面向对象程序设计
§1-1 综述 1.1.1 软件开发中的两大难题如何超越程序复杂性障碍 如何在计算机世界中自然地表示客观世界, 如何在计算机世界中自然地表示客观世界, 即对象模型
解决难题的方法—面向对象的程 1.1.2 解决难题的方法 面向对象的程 序设计类(数据结构和算法是一个整体) 数据结构和算法是一个整体) 对象模型3
面向对象程序设计
§1.2 面向对象程序设计
类与对象 封装和信息/实现隐藏 封装和信息/ 继承和重用 多态性 一般性 其他4
面向对象程序设计
§1.2 面向对象程序设计
1.2.1 类与对象类(class)是创建(实例)对象的模板,从 (class)是创建(实例)对象的模板, 是创建 类实例出的每个对象具有相同结构和行为. 类实例出的每个对象具有相同结构和行为. 类是用于设计和编程的,对象是运行时(由类) 类是用于设计和编程的,对象是运行时(由类) 创建的. 创建的. 如果对象obj属于类C 则称"obj为 obj属于类 如果对象obj属于类C,则称"obj为C的一个实 例". 一个抽象数据类型是一个模型, 一个抽象数据类型是一个模型,此模型包含一 个数据结构和与之相关的操作集. 个数据结构和与之相关的操作集.5
面向对象程序设计
§1.2 面向对象程序设计1.2.2 封装和信息/实现隐藏 封装和信息/封装(encapsulation) 封装(encapsulation)是将相关的概念组成一 个单元,其后可以通过一个名称来引用它. 个单元,其后可以通过一个名称来引用它. 面向对象封装(object面向对象封装(object-oriented encapsulation) encapsulation)是将表示状态的操作和属性包 装成一个对象类型, 装成一个对象类型,使得对状态的访问或修改只 能通过封装提供的接口进行. 能通过封装提供的接口进行. 属性表示对象记忆的信息, 属性表示对象记忆的信息,它只能通过对象的操 作来访问和修改.也就是说, 作来访问和修改.也就是说,对象不能通过变量 直接访问对象的属性, 直接访问对象的属性,只能通过对象的操作来访 问其属性. 问其属性.6
面向对象程序设计
§1.2 面向对象程序设计封装和信息/ 1.2.2 封装和信息/实现隐藏信息隐藏(information hiding)指不能被外界察觉 信息隐藏(information hiding)指不能被外界察觉 的单元内的信息. 的单元内的信息. 实现隐藏(implementation hiding)指不能被外界察 实现隐藏(implementation hiding)指不能被外界察 觉的单元内的实现细节. 觉的单元内的实现细节. 信息/实现隐藏(information/ 信息/实现隐藏(information/ implementation hiding)是使用封装将某些信息或实现方法限制在封 hiding)是使用封
装将某些信息或实现方法限制在封 装结构内部,限制外部的可见性. 装结构内部,限制外部的可见性. 信息/实现隐藏是降低软件复杂性的有效技术. 信息/实现隐藏是降低软件复杂性的有效技术.对 外部观察者而言,可以将对象看作一个黑箱子, 外部观察者而言,可以将对象看作一个黑箱子,即外 部观察者知道对象可以做什么, 部观察者知道对象可以做什么,而不知道对象如何做 或对象内部是如何构造的. 或对象内部是如何构造的.
面向对象程序设计
§1.2 面向对象程序设计封装和信息/ 1.2.2 封装和信息/实现隐藏信息/实现隐藏的优点主要表现在: 信息/实现隐藏的优点主要表现在: 优点主要表现在 设计决策局部化.私有设计决策(在对象内) 设计决策局部化.私有设计决策(在对象内)对 系统的其余部分影响很小或没有影响. 系统的其余部分影响很小或没有影响.这种局部 决策的修改限制了"修改波及"的影响. 决策的修改限制了"修改波及"的影响. 其表示形式减弱了信息的内容.因此, 其表示形式减弱了信息的内容.因此,对象外部 的信息用户不会受到任何特殊的内部信息格式的 困扰.这样, 困扰.这样,对象的外部用户就不用干涉对象内 部的事情, 部的事情,也防止无聊的程序员对对象引入不稳 定的连接. 定的连接. C++通过建立用户定义类型 通过建立用户定义类型( 存取控制权限) C++通过建立用户定义类型(类,存取控制权限) 来支持封装和信息/实现隐藏. 来支持封装和信息/实现隐藏.
面向对象程序设计
§1.2 面向对象程序设计1.2.3继承(inheritance) 继承(inheritance)和重用
9
C++采用继承支持重用的思想, C++采用继承支持重用的思想,程序可以在扩展现有类型 采用继承支持重用的思想 的基础上声明新类型. 的基础上声明新类型. 新子类是有现有类型派生出来的,称为派生类. 新子类是有现有类型派生出来的,称为派生类.例如计算机 版本升级. 版本升级. 继承( 是指D在类C中隐式的定义其每个属性和操作, 继承(从C到D)是指D在类C中隐式的定义其每个属性和操作, 就好象这些属性和操作是在类D 就好象这些属性和操作是在类D本身中定义一样 称为D的超类. 称为C的子类或派生类. C称为D的超类.D称为C的子类或派生类. 通过继承, 的对象可以充分利用C对象的属性和操作. 通过继 …… 此处隐藏:3182字,全部文档内容请下载后查看。喜欢就下载吧 ……
下一篇:化学课堂教学中问题情境的创设