版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Object Oriented Programming I刘钦南京大学软件学院 Outline Problem of Structured Programming Object-Oriented Method Object、Class、Responsibility Class Diagram and CRC 课程表应用回顾-结构化设计 课程信息规格结果文件名数据命令数据课程信息数据解析输入 控制台输入 控制台输出 文件输出 生成输出 文件输入处理命令输入命令 输出结果课程表应用 命令 Structured Programming行为视角 首先根据行为来分解 接着设计数据来配合行为全局数据 P
2、roblems of Structured Programming Not easy to read Not easy to maintain Not Easy to Read - 全局变量第11行第137行 Not Easy to Maintain - 实现变更课程信息规格结果char变为String课程信息数据命令数据文件名数据 解析输入 控制台输入 控制台输出 文件输出 生成输出 文件输入处理命令输入命令 输出结果课程表应用 命令 Not Easy to Maintain - 需求增加结果文件名数据课程信息数据命令数据解析输入 控制台输入 控制台输出 文件输出 生成输出 文件输入处理命令
3、输入命令 多一种输出 输出结果课程表应用 命令 课程信息 Not Easy to Maintain - 需求更改Add 星期四;三,四节;计算与软件工程;仙2 407; 数据格式发生修改 结果Add 星期四:3,4 节:计算与软件工程:仙2 407文件名数据课程信息数据命令数据解析输入 控制台输入 控制台输出 文件输出 生成输出 文件输入处理命令输入命令 输出结果课程表应用 命令 课程信息 大范围的修改Nightmare! 问题Q: 不修改,怎么应对变更? A: 1. 在有限的范围内修改2. 扩展 大范围的修改Add 星期四;三,四节;计算与软件工程;仙2 407; 数据格式发生修改 结果Ad
4、d 星期四:3,4节:计算与软件 工程:仙2 407文件名数据课程信息数据命令数据解析输入 控制台输入 控制台输出 文件输出 生成输出 文件输入处理命令输入命令 输出结果课程表应用 命令 课程信息 在有限的范围内修改-相关操作在一起 Add 星期四;三,四节;计算与软件工程;仙2 407; 课程信息规格结果Add 星期四:3,4 节:计算与软件工程:仙2 407文件名数据命令数据课程信息数据 课程信息相关操作 文件输入解析输入 控制台输入 控制台输出 文件输出 生成输出 处理命令输入命令 输出结果课程表应用 命令 在有限的范围内修改-数据与操作在 一起(封 装) Add 星期四;三,四节;计算
5、与软件工程;仙2 407; 课程信息规格结果Add 星期四:3,4 节:计算与软件工程:仙2 407文件名数据命令数据课程信息 课程信息 相关操作数据 文件输入解析输入 控制台输入 控制台输出 文件输出 生成输出 处理命令输入命令 输出结果课程表应用 命令 扩展-运行时动态链接(多态) 行为实现 行为抽象编译时静态链接运行时动态链接 ?输出 控制台输出 输出 文件输出 职责 职责数据职责和行为职责在一起 再看课程表应用中有哪些职责? 课程表数据课程数据 数据命令数据职责 文件数据 命令的解析 生成输出 课程数据的解析 控制台输入 行为处理命令职责 文件输入控制台输出 职责的分配命令数据 命令的
6、解析课程数据 课程数据的解析课程表数据处理命令 生成输出 命令课程课程表文件数据文件输入文件输出文件控制台控制台输入控制台输出 类 - 职责的抽象 光有一个个职责,能不能完成我们的任务! 他们是怎么交互的?命令的解析课程数据的解析3. 解析课程数据命令4. 处理课程2. 解析输入课程表5. 写文件1. 得到输入处理命令文件控制台文件输出控制台输入 课程还有很多个?文件课程课程课程表命令课程课程控制台 对象 - 职责的实现 类和对象的关系抽象与具体 你的世界观改变了! 以前是函数之间的调用,现在是有职责的对象之间的交互 视角的变化 行为视角 - 结构化方法 数据视角 - 数据为中心方法职责视角
7、- 面向对象方法 什么是对象对象是面向对象 中的术语,既表示客观世界问题空间(Namespace)中的某个具体的事物,又表示软件系统解空间中的基本元素。 在软件系统中,对象具有唯一的标识符, 对象包括属性(Properties)和方法(Methods),属性就是需要记忆的信息, 什么是对象每个对象都保存着描述当前特征的信息。对象状态的改变必须通过调用方法实现。对象的状态不能完全描述一个对象。每个对象都有一个唯一的身份(identity)。 每个对象的标识永远是不同的,状态常常 如何获得对象寻找候选对象找名词 - 类(对象)与属性找动词 - 行为 精化对象去除冗余 不 相 干 模糊的概念转化没有
8、行为的对象-某个类的属性 什么是类?类这个术语被用来描述相同事物的集合。 它以概要的方式描述了相同事物集合中的所有元素,但却允许类中的每一个实体元素可以在非本质特征上变化。 面向对象程序设计语言使用类来描述对 什么是类?类(Class)这个术语是对具有共同具体属性的对象的描述。 类是一个描述或蓝图(被表示成一段代码),用于定义组成某类特定对象的所有特性。 编程中使用类的思想与现实时间中把东西进行分类的思想相一致,这是一种方便而明确 的事物组织方式。 什么是类?一旦定义了一个类,就可以接着得到这个 类的对象或实例。 实例变量的值由类的每个实例提供。 当创建类的实例时, 就建立了这种类型的一个对象
9、,然后系统为类定义的实例变量 分配内存。 类与对象类是对某个对象的定义。 它包含有关对象动作方式的信息,包括它的名称、方法、属性和。 当引用类的代码运行时,类的一个新的实 例,即对象,就在内存中创建了。虽然只有一个类,但能从这个类在内存中创建多 职责所谓职责,我们可以理解它为功能。 每个类应当只有单一职责。 当你发现有两个变化会要求我们修改这个类, 那么你就要考虑撤分这个类了。 给对象分配责任的策略: 覆盖到所有重要的方面 寻找需要执行的动作以及需要维护和生成的信息 创建类的原因对现实世界中的对象建模对抽象对象建模降低复杂度 隔离复杂度 隐藏实现细节 限制变化所影响的范围 创建中心控制点 抽象
10、描述了一个对象的基本特征,可以将这个对象与所有其他类型的对象区分开来,因此提供了清晰定义的概念边界,它与观察者的视角有关 分类分类的重要性分类的困难 分类的增量和迭代本质 经典方法和现代方法经典分类所有具有某一个或某一组共同属性的实体构成一个分类。这样的属性 对于定义这个分类是必要的也是充分的。(已婚,高的人) 属性可以不只表示可以测量的特征,也可以包含观察到的行为(鱼能飞)概念聚集类的产生首先是形成类的概念描述,然后再根据这些描述对实体进行分类。(爱情歌曲) 原型理论以游戏为例分类可以扩展,新的“游戏”被引入,只要它们以某些恰当的方式与以前的“游戏”表现出相似性 面向对象分析经典方法来自于问
11、题域的需求 关注问题域中实实在在的事物行为分析关注动态的行为 强调责任 责任代表的是“对象维护的知识和可以执行的动作,其意义在 于表达一个对象的目的以及他在系统中的位置。对象的责任是针对它支持的所有契约而提供的全面服务。 领域分析 面向对象分析用例分析 CRC卡 非正式英语描述 结构化分析 分类关键抽象一个类或对象,它是问题域词汇表的一部分 给出了问题的边界,突出了系统中的事物排除了系统之外的事物 确定关键抽象是与 具体领域高度相关的通过发现和发明来确定关键抽象 机制关于一组对象如何写作的设计决策 代表了行为的模式 类的定义 class MyClass / field, constructor
12、, and/ method declarations 类图 类的定义public class Bicycle private int cadence; private int gear; private int speed;public Bicycle(int startCadence, int startSpeed, int startGear) gear = startGear; cadence = startCadence; speed = startSpeed;/构造方法 public int getCadence() return cadence;public void setCad
13、ence(int newValue) cadence = newValue;。public int getSpeed() return speed;public void applyBrake(int decrement) speed -= decrement;public void speedUp(int increment) speed += increment; 类的定义public class Point public int x = 0; public int y = 0;/constructorpublic Point(int a, int b) x = a; y = b;Point originOne = new Point(23, 94); 变量和方法的访问 引
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 聚偏氟乙烯装置操作工岗位生产安全水平考核试卷含答案
- 涂层后处理工岗中体系认证考核试卷含答案
- 平法考试题带答案
- 航法考试题及答案
- 建筑给排水及采暖工程施工工艺
- 高氨氮垃圾渗滤液短程生物脱氮:原理、实践与挑战
- 高校辅导员职业倦怠的深度剖析与应对策略
- 高校智慧课堂新探索:基于位置检测的主从双架构考勤系统构建与实践
- 高校大学生道德惩罚体系构建与价值探寻:理论、实践与展望
- 高校体育学术型硕士学位论文英文摘要语言问题及优化策略探究
- 公路水泥混凝土路面施工技术规范(JTGF30-2024)
- GA/T 2130-2024嫌疑机动车调查工作规程
- GH/T 1451-2024调配蜂蜜水
- 10S505 柔性接口给水管道支墩
- NB-T31052-2014风力发电场高处作业安全规程
- JB-QGL-TX3016AJB-QTL-TX3016A火灾报警控制器安装使用说明书
- 2016广东省排水管道非开挖修复工程预算定额
- 2023马鞍山师范高等专科学校教师招聘考试真题题库
- GB/T 10095.2-2023圆柱齿轮ISO齿面公差分级制第2部分:径向综合偏差的定义和允许值
- 危险作业检查表清单
- HXD2B型电力机车操纵方法
评论
0/150
提交评论