- 0
- 0
- 约1万字
- 约 73页
- 2023-10-24 发布于山东
- 举报
基于面向对象的课程设计主要由两个阶段组成:面向对象设计阶段和面向对象实现阶段。面向对象设计阶段主要是通过编写面向对象程序来实现设计意图。面向对象程序的核心是类,每个类都有自己的数据成员和行为。在这个阶段,我们需要根据设计意图来确定程序的功能和数据模型。面向对象实现阶段则是将设计好的程序转换为可运行的形式。实现过程主要包括以下几个步骤:1.创建新的类和相关的头文件。2.定义类的属性和方法。3.编写相应的接口和构造函数,使其与类的特性匹配。4.运行程序并查看输出。总之,
面向对象实现;面向对象实现主要包括两项工作:
把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;
测试并调试面向对象的程序。
;面向对象测试的目标,也是用尽可能低的测试成本发现尽可能多的软件错误。
面向对象程序中特有的封装、继承和多态等机制,也给面向对象测试带来一些新特点,增加了测试和调试的难度。
必须在实践中努力探索适合于面向对象软件的更有效的测试方法。;面向对象设计的结果既可以用面向对象语言、也可以用非面向对象语言实现。; 选择编程语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。
从面向对象观点看来,能够更完整、更准确地表达问题域语义的面向对象语言的语法是非常重要的,因为这会带来下述几个重要优点:;1. 一致的表示方法
面向对象开发基于不随时间变化的、一致的表示方法。
表示方法应该从问题域到OOA,从OOA到OOD,最后从OOD到面向对象编程(OOP),始终稳定不变。
一致的表示方法既有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。;2. 可重用性
为了能带来可观的商业利益,必须在更广泛的范围中运用重用机制,而不是仅仅在程序设计这个层次上进行重用。
在OOA,OOD直到OOP中都显式地表示问题域语义,其意义是十分深远的。
随着时间的推移,软件开发组织既可能重用它在某个问题域内的OOA结果,也可能重用相应的OOD和OOP结果。;3. 可维护性
尽管人们反复强调保持文档与源程序一致的必要性,但是,在实际工作中很难做到交付两类不同的文档,并使它们保持彼此完全一致。
特别是考虑到进度、预算、能力和人员等限制因素时,做到两类文档完全一致几乎是不可能的。因此,维护人员最终面对的往往只有源程序本身。;两大类面向对象语言。
一类是纯面向对象语言,如Smalltalk和Eiffel等语言,着重支持面向对象方法研究和快速原型的实现.
另一类是混合型面向对象语言,也就是在过程语言的基础上增加面向对象机制,如C++等语言,着重提高运行速度和使传统程序员容易接受面向对象思想。;1. 支持类与对象概念的机制
允许用户动态创??对象,并且可以用指针引用动态创建的对象。
系统必须处理内存管理问题,如果不及时释放不再需要的对象所占用的内存,动态存储分配就有可能耗尽内存。;有两种管理内存的方法,
语言的运行机制自动管理内存,即提供自动回收“垃圾”的机制;
程序员编写释放内存的代码。
自动管理内存不仅方便而且安全,但是必须采用先进的垃圾收集算法才能减少开销。;2. 实现整体-部分(即聚集)结构的机制
两种实现方法,分别使用指针和独立的关联对象实现整体-部分结构。;3. 实现一般-特殊(即泛化)结构的机制
既包括实现继承的机制也包括解决名字冲突的机制。
解决名字冲突,指的是处理在多个基类中可能出现的重名问题,这个问题仅在支持多重继承的语言中才会遇到。
某些语言拒绝接受有名字冲突的程序,另一些语言提供了解决冲突的协议。不论使用何种语言,程序员都应该尽力避免出现名字冲突。;4. 实现属性和服务的机制
实现属性的机制应该着重考虑几个方面: 支持实例连接的机制;
属性的可见性控制;
对属性值的约束。
服务应该考虑下列因素:
支持消息连接(即表达对象交互关系)的机制;
控制服务可见性的机制;
动态联编。;所谓动态联编,是指应用系统在运行过程中,当需要执行一个特定服务的时候,选择(或联编)实现该服务的适当算法的能力。
动态联编机制使得程序员在向对象发送消息时拥有较大自由,在发送消息前,无须知道接受消息的对象当时属于哪个类。;5. 类型检查
如果语言仅要求每个变量或属性隶属于一个对象,则是弱类型的;
如果语法规定每个变量或属性必须准确地属于某个特定的类,则这样的语言是强类型的。面向对象语言在这方面差异很大,例如,Smalltalk实际上是一种无类型语言(所有变量都是未指定类的对象);C++和Eiffel则是强类型语言。混合型语言(如C++, Objective_C等)甚至允许属性值不是对象而是某种预定义的基本类型数据(如整数,浮点数等),这可以提高操作的效率。;强类型语言主要有两个优点:
有利于在编译时发现程序错误,
增加了优化的可能性。
通常使用强类型编译型语言开发软件产品,使用弱类型解释型语言快速开发原型。
总的说来,强类型语言有助于提高软件的可靠性和运行效率,现代的程序语言理论支持强类型检查,大多数新语言都是强类型的。;6. 类库
大多数面向对象语言都提供一个实用的类库。
类库中往往包含实现通用数据结构(例如,动态数组、表、队列、栈、树等等)的类,通常把这些类称为包容类。在类库中还可以找到实现各种关联的类。
更完整的类库通常还提供独立于具体设备的接口类(例如,输入输出流),此外,用于实现窗口系统的用户界面类也非常
您可能关注的文档
- HACCP管理体系简介课件.pptx
- UML建模语言课件.pptx
- 安全支持性措施与方案课件.pptx
- 被控对象的数学模型课件.pptx
- 焙烤机械课件.pptx
- 编辑修改器和复合对象课件.pptx
- 编码与实现课件.pptx
- 不溶性偶氮染料课件.pptx
- 材质编辑器的介绍课件.pptx
- 蚕丝织物的前处理和整理课件.pptx
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
最近下载
- 北师大版四年级数学下册全册课时练习.pdf VIP
- 南京邮电大学C语言期末试卷及答案.pdf VIP
- 康复治疗技术操作规范.docx VIP
- 2025年急危重症患者CT检查护理管理专家共识解读PPT课件.pptx VIP
- 南京邮电大学《C语言程序设计》2024-2025学年第一学期期末试卷及答案.docx VIP
- 施耐德ATV御程系列ATV630 ATV650编程手册中文.pdf
- 新译林版高中英语选择性必修二 unit 4词汇默写本.docx VIP
- 新译林版高中英语选择性必修二 unit 3词汇默写本.docx VIP
- 新译林版高中英语选择性必修二 unit 2词汇默写本.docx VIP
- 2026年太原城市职业技术学院单招职业适应性测试题库附答案.docx VIP
原创力文档

文档评论(0)