第1章 面向对象技术概述ppt课件.ppt

第1章 面向对象技术概述ppt课件.ppt

ID:58871958

大小:973.00 KB

页数:57页

时间:2020-09-30

第1章 面向对象技术概述ppt课件.ppt_第1页
第1章 面向对象技术概述ppt课件.ppt_第2页
第1章 面向对象技术概述ppt课件.ppt_第3页
第1章 面向对象技术概述ppt课件.ppt_第4页
第1章 面向对象技术概述ppt课件.ppt_第5页
资源描述:

《第1章 面向对象技术概述ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第1章面向对象技术概述UML及软件建模1.1背景1.2面向对象技术1.3建模第1章面向对象技术概述UML及软件建模1.1.1软件危机与软件工程1.1.2软件开发的基本认识1.1.3软件的复杂性第1章面向对象技术概述1.1背景介绍1.1.1软件危机与软件工程软件危机周期长费用高昂效率低下复杂化软件工程由NATO于1968年首次提出摆脱软件危机1.1.2软件开发的基本认识软件开发的现状软件工程学科不断发展软件危机仍然存在中小型软件开发较为成熟,大型软件存在问题常见软件开发方法瀑布模型快速原型螺旋模型极限

2、软件开发1.1.2软件开发的基本认识大型软件系统的特点开发代价高、时间长、参与人员多、软件生命周期长。软件系统开发的两个方面软件开发过程各个阶段工作软件开发中资源的协调和管理多方资源的协调管理软件工程的目的在规定的时间、规定的费用内开发出满足用户需求的高质量的软件系统。1.1.2软件开发的基本认识软件产品与硬件产品的区别表现形式不同生产方式不同产品需求不同维护方式不同1.1.3软件固有的复杂性软件开发的复杂性与困难性是由于软件的特点造成的,软件的复杂性是固有的。软件复杂性的原因现有硬件系统(冯氏体系

3、)的体系结构造成的软件开发是智力活动,很难描述软件的本质规律或特征软件系统中各元素之间的相互作用关系具有不确定性软件系统需求的变化性软件生命周期中需要适应不同的硬件环境控制软件复杂性的基本方法分解,即“分而治之”或“各个击破”抽象,抽取系统本质特征,忽略非基本特征过程抽象数据抽象模块化,基本要求是高内聚、低耦合信息隐蔽,也称封装1.1背景1.2面向对象技术1.3建模第1章面向对象技术概述UML及软件建模1.2面向对象技术Object-Oriented的基本思想对问题域进行自然分割,以更接近人类思维的

4、方式建立问题域模型,从而使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性,能适应用户需求的变化。面向对象技术的优点稳定性较高易于理解适应性较好可靠性较高各个开发阶段之间过渡平滑1.2.1基本概念1.2.2面向对象技术发展1.2.3面向对象技术VS结构化第1章面向对象技术概述1.2面向对象技术1.2.1面向对象领域的基本概念OO技术领域存在一些基本术语和概念,需要掌握和理解。对象和实例对象(Object)它是系统用来描述客观事物的一个实体,是构成系统的一个基本单位。对象包括:属性和方法对象之

5、间通过消息进行通信。实例(Instance)它与对象的概念很类似,但其含义更广泛一些。类类(Class)它是具有相同属性和方法的一组对象的集合为某类对象提供统一的描述类是静态概念类的实例就是对象封装封装(Encapsulation)就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。封装使对象具有2个部分:接口部分和实现部分封装提供2种保护保护对象,防止直接访问对象内部细节保护客户,防止对象实现部分的变化影响客户对象。继承继承(Inheritance)它使子类可以继承父类的属

6、性和方法继承增加了软件重用的机会继承中的覆盖和重载Override与Overload单继承与多继承重载和覆盖成员函数被重载的特征(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。①doublecalculate(double);②doublecalculate(double,double)

7、;③doublecalculate(double,int);④doublecalculate(int,double);⑤doublecalculate(int);⑥floatcalculate(float);⑦floatcalculate(double);六个同名函数calculate,①②③④⑤⑥中任两个均构成重载,⑥和⑦也能构成重载,而①和⑦却不能构成重载,因为①和⑦的参数相同。重载在同一可访问区内被声名的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函数,程序会根据不同的参数列来确定具

8、体调用哪个函数,这种机制叫重载,重载不关心函数的返回值类型。覆盖是指派生类中存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体(花括号中的部分)不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本,这种机制就叫做覆盖。#includeclassBase{public:voidf(intx){cout<<"Base::f(int)"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。