高级软件工程 陈宁江 2007.10 面向对象方法 概述 面向对象的分析和设计方法 基于UML的面向对象分析与设计 什么是面向对象( Object Oriented ,OO)? 面向对象是一种风范(Paradigm),是一种观察和分析问题的方法论(Methodology) 从本质上来说,面向对象方法是确定动作的主体在先(先确定系统中的对象),执行动作在后(再确定在这些对象上可能实施的操作) 传统的面向过程的程序设计,最关心的是过程 面向对象技术:是一种软件系统设计的工程技术,将“对象”作为软件系统的基本组成单元,将数据及其上作用的操作一起封装,以标准的接口规范对外提供服务 面向对象技术的基本观点 客观世界是由对象组成的 从动态观点看,对对象施加的操作就是该对象的行为 具有相同数据和相同操作的对象可以归并为一个类,对象是类的一个实例 对象之间通过消息传递相互联系 类具有封装性 类可以派生出子类,子类继承父类的全部特性,又可以有自己的新特性 面向对象技术的发展历史 初始阶段( 60年代末~80年代中期) 挪威,Simula语言:引入了类的概念和继承机制 Xerox,Smalltalk语言 发展阶段( 80年代中期到90年代) 面向对象编程语言的繁荣: C++、Object Pascal、Java等 成熟阶段(90年代中期以后) 面向对象分析和设计方法的发展与规范: Booch方法、Rumbaugh的OMT方法、Coad/Yourdon方法、 Jacobson的OOSE方法 等 形成一整套面向对象软件工程体系 面向对象方法的优点 按照人类的自然思维方式建立软件系统模型,有利于理解和交流 在整个开发过程中采用统一的概念和模型表示,使开发活动之间平滑过渡 对象所具有的封装性和信息隐蔽等特性,容易实现软件复用 易于维护,体系结构易于理解、扩充和修改 面向对象的基本概念 对象(Object) 由一组属性和在这些属性数据上的容许操作对组成 类(Class) 封装(Encapsulation) 继承(Inheritance) 多态性(Polymorphism) 消息(Message) 面向对象的基本概念 1. 对象(object) 对象是指一组属性以及这组属性上的专用操作的封装体 属性(attribute)通常是一些数据,有时它也可以是另一个对象。每个对象都有它自己的属性值,表示该对象的状态。对象中的属性只能通过该对象所提供的操作来存取或修改。 操作(operation)(也称方法)规定了对象的行为,表示对象所能提供的服务。 一个对象通常由对象名、属性和操作三部分组成。 2. 类(class) 类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。 类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。 封装(encapsulation):一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。 封装的目的:使对象的使用者和生产者分离,使对象的定义和实现分开。 继承(inheritance): 继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。 父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的操作重新定义其实现方法。 继承的例子 如果一个子类只有唯一一个父类,这个继承称为单一继承。 如果一个子类有一个以上的父类,这种继承称为多重继承。 多态性(polymorphism) 指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。 例如“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形,作用在“圆”对象上,则在屏幕上画一个圆。 相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。 if 条件 then p := t ; else p := r ; area := p.getarea ; 面向对象的软件工程 面向对象的分析(OOA):分析和理解问题域,找出类及对象,分析它们的内部构成和外部关系 面向对象的设计(OOD):运用面向对象技术进行软件设计 面向对象的编程(OOP):用面向对象的编程语言将设计模型转换成程序 面向对象的测试(OOT):运用OO技术进行以对象概念为中心的软件测试,以类作为基本测试单位
您可能关注的文档
- 旅游商品经场所翻译.ppt
- 旅游市场细与目标市场选择.ppt
- 旅游市场销宏观环境.ppt
- 旅游市场营销组合策《旅游市场营销》.ppt
- 旅游搜索擎营销的发展.ppt
- 旅游业电子商务求与驱动.ppt
- 履历表制作面试技巧.ppt
- 绿城·苏园区地王项目营销思考.ppt
- 绿城景观设计理目标简述.ppt
- 绿城唐山南湖生态城项目介推介手册.ppt
- XX区第一初级中学八年级十四班班主任在班级图书角建设与阅读推进.docx
- 健康监测产品营销策划方案.docx
- XX中学校八年级物理备课组长在压强浮力单元教学重难点突破研讨上的发言.docx
- 江门便携储能产品项目商业计划书.docx
- 2025-2026学年度第二学期教研组学期教研活动计划安排表模板.docx
- 水稻创新创业计划书模板.docx
- XX初级中学八年级八班班主任在防欺凌主题教育班会设计及承诺签署.docx
- 2026年学历类自考国民经济统计概论-中国古代文学作品选(一)参考题库含答案解析(5卷试题).docx
- 2026版教师职称-内蒙古-内蒙古教师职称(基础知识、综合素质、高中英语)历年参考题库含答案解析5套.docx
- 2026版住院医师规培-辽宁-辽宁住院医师规培(口腔内科)历年参考题库含答案解析5套试卷版.docx
原创力文档

文档评论(0)