欢迎来到天天文库
浏览记录
ID:52401951
大小:228.01 KB
页数:20页
时间:2020-04-05
《面向对象软件开发基础.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章面向对象软件开发基础合肥学院计算机系吴晓琴1本章内容4.1面向对象技术基础4.2Java语言的面向对象特性24.1面向对象技术基础34.1.1面向对象的基本概念面向对象的基本思想面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问
2、题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。44.1.1面向对象的基本概念1.对象的基本概念 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务)。2.类的基本概念 类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类
3、是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。3.消息消息就是向对象发出的服务请求,它应该包含下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。服务通常被称为方法或函数。54.1.2面向对象的基本特征1.封装性封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义: ◇把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。 ◇信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一
4、道屏障〕,只保留有限的对外接口使之与外部发生联系。 封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的"交叉感染",使软件错误能够局部化,大大减少查错和排错的难度。64.1.2面向对象的基本特征2.继承性特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。在java语言中,通常我们称一般类为父类(superclass,超类),特殊类为子类(
5、subclass)。3.多态性对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:"几何图形"的"绘图"方法,"椭圆"和"多边形"都是"几何图"的子类,其"绘图"方法功能不同。74.1.3面向对象程序设计方法OOA-ObjectOrientedAnalysis面向对象的分析OOD-ObjectOrientedDesign面向对象的设计OOI-ObjectOrientedImplemen
6、tation面向对象的实现8面向对象程序设计方法①面向对象(ObjectOriented):它是一种解决问题的方法或者观点,它认为自然界是由一组彼此相关并能相互通信的实体(对象)所组成。②面向对象程序设计方法(OOP):它使用面向对象的观点来描述现实问题,然后用计算机语言来模仿并处理该问题的一种程序设计方法。③要求:描述或处理问题时应具有高度的概括、分类并对它抽象的能力,才能准确地描述某一实体;将所要处理的问题抽象为对象(数据与代码的集合)④目的:实现软件设计的产业化,变手工作坊式编程为软件构件式工业
7、化,达到快速高效编程。94.2面向对象程序设计方法的编程语言①Smalltalk:由美国加州的Xeror公司于70年代初研制的纯OOP语言,适用于小型机;②C++:是在面向过程程序设计方法基础上新增OOP成分,因而是一种混合型语言。其流行的原因归功于C语言的普及;但它具有与平台(CPU、OS类型)有关性。③Java:由Sun公司于1995年发布,适用于Internet网开发和应用的纯OOP语言。104.3、面向对象程序设计过程:分析用户需求,从问题中抽取对象模型;将模型细化,设计类,包括类的属性和类间
8、相互关系,同时考察是否有可以直接引用的已有类或部件选定面向对象的编程语言,具体编码实现上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案。114.4、面向对象程序设计方法的编程优点可重用性是面向对象软件开发的核心思路。抽象、封装、继承与派生、多态性围绕可重用性核心。应用软件由模块组成。可扩充性面向对象软件开发:快速原形传统软件开发:瀑布式可管理性面向过程的开发方法:以过程或函数为单位面向对象的开发方法:以类为单位例:面向过程:需3000函数,管理
此文档下载收益归作者所有