首页 » 正文内容 » 第1章-面向对象概述-

第1章-面向对象概述-

时间:2023-04-06 23:09:48  热度:0°C
UML理论与实践 本课程采用平时成绩 包括出勤考核 课堂发言等 实践 课程设计 和理论考试相结合的考核方法 总评成绩中平时成绩占30 实践成绩占10 期末考试占60 实践按小组完成项目课程设计 用课外时间完成 并提交书面报告的形式上交 小组最后汇报 课程安排 大纲 教科书 UML基础与Rose建模实用教程 参考题目 ***移动销售系统天气预报系统快递查询系统电影订票系统音乐系统要求 题目不同 大家自己协调题目 第3周各个小组上报成员名单和题目 第1章面向对象概述 本章首先介绍了面向对象的基本概念 并与面向过程进行对比 然后具体到面向对象的基本特征和实际的方***技术 最后对为什么使用UML建模进行简要介绍 P 程序 DS 数据结构 A 算法 Coad和Yourdon 面向对象 对象 类 继承 通信 1 1面向对象的基本概念1 1 1对象对象 Object 是面向对象 Object Oriented OO 系统的基本构造块 是一些相关的变量和方法的软件集 对象经常用来建立对现实世界中的一些对象模型 对象是理解OOP的关键 可以看到 感知的东西或概念性对象 对象是一种将状态和行为有机结合起来形成的软件构造模型 它可以用来描述现实世界中的一个对象 1 1面向对象的经验 请大家设计关于 学生管理信息系统 属性很多 数据库的设计 大象的故事 盲人摸象 大象 1 1面向对象的经验 大象的故事 盲人摸象 大象 大象的属性 牙齿yc 耳朵ed 尾巴wb 肚子dz 腿t 方法 get yc get ed get wb get dz get t 1 1面向对象的经验 盲***象扩展版大象的故事 马戏团里的小大象大象的属性 牙齿yc 耳朵ed 尾巴wb 肚子dz 腿t 年龄nl 力量ll 活动范围hdfw方法 get yc get ed get wb get dz get t get nl get ll get hdfw 大象 小大象 1 1面向过程的经验 请大家设计关于 学生成绩查询系统 成绩的录入 存储 处理和查询 大象的故事 曹冲称象 称象 1 1面向过程的经验 大象的故事 曹冲称象 称象 顺序 功能 函数 赶大象上船feo 看船身吃水位bwh 在船舷上画线bd 赶大象下船上岸feu 向船上加石头直到船沉到画线处为止as曹冲称象扩展版 刻舟求剑 1 1面向过程的经验 刻舟求剑顺序 功能 函数 在船舷上画线 做记号 bd 船靠岸bu 从画记号的地方跳下水sj 找剑fs 没找到剑nf 1 1面向对象的基本概念1 1 2面向对象与面向过程的区别面向对象 以对象为基础 以事件或消息来驱动对象执行处理 是自下而上的程序设计方法 其特点是 从问题的一部分着手 在设计中以数据为中心 类为工具 设计者不知道具体执行顺序 只知道相互关系 结构化程序设计 自上而下 先确定程序的流程怎么走 函数间的调用关系和依赖关系是什么 设计者要明确执行顺序 相互关系 面向对象 设计对象类 A1 A2 A3 B1 B2 DA1 I1 D A2 I2 A3 I3 A1 I1 A2 I2 B1 I4 A3 I3 B2 B1 I4 DM main A1 A2 A3 D 面向过程示例 M main A B C D A A1 A2 A3 B B1 B2 C C1 实施的实际结果是M main A1 A2 A3 B1 B2 C C1 D 1 1 3对象与类的确定对象 Object 是由状态 State 和行为 Behavior 构成的 是包含客观事物特征的抽象实体 封装了状态和行为 对象 数据 数据操作可以利用对象来代表现实世界中的对象 可用一个飞行试驾程序来代表现实世界中的正在飞行的飞机 或者用机***数控程序来代表现实世界的运行的机*** 同样可以使用对象来造型抽象的概念 比如 点击按钮事件就是一个用在GUI窗口系统的公共对象 它可以代表用户点击程序界面中的一个确定按钮的动作 对象应该自己对负责自己 且应该清楚地定义责任 1 1 3对象与类的确定类 Class 是具有相同属性和操作的一组对象的组合 对象是类的实体化类的确定 确定系统的范围 在系统范围内寻找对象 将对象抽象成为一个类 进而确定类的数据和操作 例如名为 学生 的类被用于描述为被学生管理系统管理的学生对象 类的定义要包含以下的要素第一 定义该类对象的数据结构 属性的名称和类型 第二 定义对象所要执行的操作 也就是类的对象要被调用执行那些操作 以及这些操作时对象要执行那些操作 比如数据库操作等等 1 1 4消息和事件所谓消息 Message 是指描述事件发生的信息 是对象间相互联系和相互作用的方式 一个消息主要由5部分组成 消息的发送对象 消息的接收对象 消息传递方式 消息内容 参数 消息的返回 传入的消息内容的目的有两个 一个是让接受请求的对象获取执行任务的相关信息 另一个是行为指令 所谓事件通常是指一种由系统预先定义而由用户或系统发出的动作 事件作用于对象 对象识别事件并作出相应反应 对象通过对外提供的方法在系统中发挥自己的作用 当系统中的其它对象请求这个对象执行某个方法时 就向该对象发送一个消息 对象响应这个请求 完成指定的操作 程序的执行取决于事件发生的顺序 由顺序产生的消息来驱动程序的执行 点击设置以上按钮plain属性点击设置以上按钮loading属性 setPlain function e this setData plain this data plain JavaScript 1 2面向对象的基本特征面向对象的核心元素 对象 封装 消息 类 继承 多态性 结构与连接 客观世界里的任何实体都可以被称为对象 对象可以是具体的 有形的物 也可以是无形的事物或概念 对象是问题域或实现域中某些事物的一个抽象 对象是一个封装数据属性和操作行为的实体 系统中的对象在软件生命周期的各个阶段可能有不同的表示形式 在概念层 对象是一组责任 在规约层 对象是一组可以被其他对象或对象自己调用的方法 在实现层 对象是代码和数据以及它们之间的计算交互 1 对象的抽象 一个对象的实例图解 1抽象 抓主要特征 将需要的事物进行简化 学生 的主要属性 将事物特征进行概括 简单 通用 普适性 将抽象模型***为层次结构 分类降低复杂性 将软件重用得以保证 强调实体的本质 内在的属性 封装 Encapsulation 是把对象的状态和行为绑到一起的机制 把对象形成一个***的整体 并且尽可能的隐藏对象的内部细节 封装有两个含义 一是把对象的全部状态和行为结合一起 形成一个不可分割的整体 对象的私有属性只能够由对象的行为来修改和读取 二是尽可能隐蔽对象的内部细节 与外界的联系只能够通过外部接口来实现 封装的信息***作用反映了事物的相对***性 我们可以只关心它对外所提供的接口 即能够提供什么样的服务 而不用去关注其内部的细节问题 比如说使用手机 我们关注的通常是这个手机能实现什么功能 而不太会去关心这个手机的是怎么一步步制造出来的 封装可看作是任何形式的隐藏 类型 实现 设计等 2 封装 classCar Stringcolor intnumber voidrun System out println color number classCarDemo publicstaticvoidmain String args Carc newCar c color red c number 4 c run Carc1 newCar c1 color black c1 number 3 c1 run 消息是向对象发出的服务请求 一个消息包含消息名 接受对象的标志 服务标志 输入信息 回答信息等 消息传递机制 3 消息 5页 类是一组具有相同数据结构和相同操作的对象的*** 类是对象的抽象 客观世界实际存在的都是对象 而不是类 类和对象的关系 类是根据对象所具有的责任定义对象的类型 责任可以分为行为或状态 这些分别由方法或数据实现 4 类 第4页 继承 Inheritance 是一种连接类与类的之间的层次模型 继承是指特殊类的对象拥有其一般类的属性和行为 继承意味着 自动地拥有 即在特殊类中不必重新对已经在一般类中所定义过的属性和行为进行定义 而是特殊类自动地 隐含地拥有其一般类的属性和行为 继承对类的重用性 提供了一种明确表述共性的方法 即一个特殊类既有自己定义的属性和行为 又有继承下来的属性和行为 5 继承 继承的描述 publicabstractclassPerson publicabstractvoidshow publicclassStudent Person publicoverridevoidshow Console WriteLine 我是学生 classStudentOfComputer publicvoidtShow Personperson person show 单重继承和多重继承的描述 定义 同一操作作用于不同的对象 可以有不同的解释 产生不同的执行结果 多态性分为两种 编译时的多态性 运行时的多态性 多态 能够用一种方式引用一个类的不同派生类 但获得的行为对应于所引用的派生类 子类重写 覆盖父类相关功能 6 多态性 一般 特殊结构整体 部分结构实例连接消息连接 7 结构与连接 1 3面向对象方***1 3 1面向对象分析1 获取问题域陈述2 建立系统的对象模型3 建立对象的动态模型4 建立系统的功能模型 1 3 1面向对象分析 建立对象模型 标识和确定类 准备数据字典 确定关联 确定属性 使用继承来细化类 完善对象模型建立对象的动态模型 准备脚本 确定事件 准备事件***表 构造状态图建立系统的功能模型 输入 输出等参数 数据流图 SQL定义 数据字典 createtablePM DICT ENUM PK IDVARCHAR 36 notnull 主键DICT CODEVARCHAR 16 ENUM CODEVARCHAR 16 ENUM NAMEVARCHAR 64 RESERVEVARCHAR 36 SORTINDEXINT ENUM EN NAMEVARCHAR 64 constraintPK PM DICT ENUMprimarykey PK ID Java定义 数据字典 publicclassDictEnum 字典枚举定义 业务类型publicstaticclassBusiType publicstaticfinalStringEXCHANGE 10 10 汇兑publicstaticfinalStringSAVINGS 11 11 储蓄publicstaticfinalStringINTERNATIONAL 12 12 国际publicstaticfinalStringFUNDS 13 13 基金publicstaticMapdataMap JSONUtil parseJSON2Map 10 汇兑 11 储蓄 12 国际 13 基金 1 3 2面向对象设计面向对象设计的准则模块化抽象信息隐藏低耦合高内聚2 面向对象设计的实用规则结果应该清晰易懂 结构的深度适当 小而简单的类 简单消息协议 简单的函数和方法 设计的变动少 3 系统设计步骤子系统分解 确定并发性 处理器及任务分配 数据存储管理 全局资源的处理 选择软件控制机制 人机交互接口设计 1 4面向对象建模为什么要利用UML对系统进行面向对象建模 如何使用UML形成面向对象建模的开发模式 建模的使用是软件成功的一个基本因素 模型的实质 对现实的简化 建模的目标 便于展现系统 可视化 允许指定系统的结构或行为 规约 提供构造系统的模板 记录决策 文档 建模的重要性 选择建立什么样的模型对如何发现和解决问题具有重要的影响 每个模型可以有多种表达方式 最好的模型总是能够切合实际 孤立的模型是不完整的 任何好的系统都是由一些几乎***的模型拼凑出来的 建模四原则 面向对象建模 两种最常用的建模方法 基于算法的和面向对象的 随着需求的变化和系统的增长 运用基于算法的建模方法建立起来的系统很难维护 在面向对象的建模方法中 主要的模块是对象或者类 Booch1993 GradyBooch OOSE Ji

免责声明:
1. 《第1章-面向对象概述-》内容来源于互联网,版权归原著者或相关公司所有。
2. 若《86561825文库网》收录的文本内容侵犯了您的权益或隐私,请立即通知我们删除。