资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1面向对象技术概述面向对象技术概述2软件危机,于20世纪60年代爆发 产生:大型软件的开发过程中出现了复杂程度高、研制周 期长、正确性难以保证的三大难题。表现形式:用户需求不明确、变更过多;软件成本日益增 长;开发进度难以控制;软件质量差;软件维护困难。产生的原因:软件开发无计划性;软件需求不充分;软件 开发过程无规范;软件产品无评测手段。解决途径:应该加强软件开发过程的管理;推广使用开发 软件的成功技术与方法;开发和使用好的软件工具。软件危机与软件工程软件危机与软件工程3软件工程,由NATO于1968年提出 发展:软件的需求是软件发展的动力;软件工作的范围 从只考虑程序的编写扩展到涉及整个软件生存周期。软件生存周期一般可划分为计划、开发、运行与维护三 个时期,而每个时期又划分为若干个阶段。软件开发的现状软件工程学科不断发展软件危机仍然存在中小型软件开发较为成熟,大型软件存在问题软件危机与软件工程软件危机与软件工程4常见软件开发方法瀑布模型快速原型螺旋模型软件危机与软件工程软件危机与软件工程先做试验开发“原型” ,其目 标只是在于探索可行性,弄清软 件需求;然后在此基础上获得较 为满意的软件产品。5软件开发的基本认识软件开发的基本认识 大型软件系统的特点开发代价高、时间长,参与人员多,软件生命周期长。软件系统开发的两个方面软件开发过程软件开发中资源的协调和管理软件工程的目的在规定的时间、规定的费用内开发出满足用户需求的高 质量的软件系统。低错误率、好用、易用、可维护、可重用、可移植等6软件开发的基本认识软件开发的基本认识 软件产品与硬件产品的区别表现形式不同生产方式不同产品需求不同维护方式不同7软件固有的复杂性软件固有的复杂性 软件开发的复杂性与困难性是由于软件的特点造成的 ,软件的复杂性是固有的。软件复杂性的原因现有硬件系统的体系结构造成的软件开发是智力活动,很难描述软件的本质规律或特征软件系统中各元素之间的相互作用关系具有不确定性软件系统需求的变化性软件生命周期中需要适应不同的硬件环境8控制软件复杂性的基本方法控制软件复杂性的基本方法 分解,即“分而治之”或“各个击破” 抽象,抽取系统本质特征,忽略非基本特征过程抽象数据抽象模块化,基本要求是高内聚、低耦合信息隐蔽,也称封装9结构化的基本思想以过程抽象对待系统的需求,其主要思想是对问题进行 功能分解,直到最后分解得到的功能比较方便地处理和 理解为止。Object-Oriented的基本思想 对问题域进行自然分割,以更接近人类思维的方式建立 问题域模型,从而使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性,能适应用户需求的变化 。面向对象技术面向对象技术10结构化方法结构化方法面向对象的方法面向对象的方法问题域 问题域结构化分析分析与设计的鸿沟结构化设计结构化编程,如C语言需求工程OOAAHare.Run; ALion.Catch(AHare)ALion.Catch(AHare); ;ALion.Kill(AHare);ALion.Kill(AHare); AHare.Dead;AHare.Dead; ALion.Eat;ALion.Eat; ALion.Happy;ALion.Happy;在计算机中模拟现实世界的事和物在计算机中模拟现实世界的事和物13面向对象技术的优点面向对象技术的优点 稳定性较高、适应性好较小的需求变化不会导致系统结构大的改变当需求变化时功能:最易变功能:最易变数据:较易变数据:较易变对象:较稳定对象:较稳定稳定性增加稳定性增加用较稳定把不稳定的包起来用较稳定把不稳定的包起来14面向对象技术的优点面向对象技术的优点 可靠性较高灵活性好可复用15面向对象领域的基本概念面向对象领域的基本概念 OO技术领域存在一些基本术语和概念,需要掌握和理解。面向对象技术的基本观点: 客观世界由对象组成,任何客观实体都是对象,复杂对 象可以由简单对象组成。具有相同数据和操作的对象可归纳成类,对象是类的一 个实例。类可以派生出子类,子类除了继承父类的全部特性外还 可以有自己的特性。对象之间的联系通过消息传递来维系。16对象和实例对象和实例 对象(Object) 它是系统用来描述客观事物的一个实体,是构成系统的 一个基本单位。对象包括:属性和方法对象之间通过消息进行通信。实例(Instance) 它与对象的概念很类型,但其含义更广泛一些。17类类 类(Class) 它是具有相同属性和方法的一 组对象的集合为某类对象提供统一的描述类是静态概念18封装封装 封装(Encapsulation) 就是把对象的属性和方法结合成一个独立的系统单位, 并尽可能隐蔽对象的内部细节。封装(类定义)使对象形成两个部分:接口部分和实现 部分。封装提供2种保护 保护对象,防止直接访问对象内部细节。保护客户,防止对象实现部分的变化影响客户对象。19继承继承 继承(Inheritance) 它使子类可以继承父类的属性和方法继承增加了软件重用的机会继承中的覆盖覆盖(Override)与重载(Overload)的区别单继承与多继承20public class A String name; public String getValues() return “Value is:” +name; public class B extends A String address; public String getValues() return “Value is:”+address; public class Aint age;String name;public void setValue (int i) age = i; public void setValue (String s) name = s; OverrideOverride与与OverloadOverload21继承继承 继承(Inheritance) 它使子类可以继承父类的属性和方法继承增加了软件重用的机会继承中的覆盖覆盖(Override)与重载(Overload)的区别单继承与多继承22单继承多继承23多态多态 多态(polymorphism)在OO技术中,多态指使一个实体在不同上下文条件下具有不同意义或用法的能力类型编译时的多态性(overload) 运行时的多态性实现方式继承接口24消息消息 消息(Message) 是指向对象发出的服务请求包括:提供服务的对象的标识、服务标识、输入信息和 回答信息等对象间的消息传递是OO方法的基本原则 消息包括同步消息,请求者需要等待响应者返回异步消息,请求者不需要等待响应者返回,发出消息后 可以继续自己的后续工作25public class Student boolean successfullyCompleted(Course c) public class Course boolean register(Student s) c.register(s);消息传递消息传递
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号