南京大学-软件工程-15 面向对象信息隐藏
- 格式:ppt
- 大小:640.00 KB
- 文档页数:36
判断题:1.软件就是程序,编写软件的关键是编写程序。
2.可行性研究阶段要进行一次大大压缩简化了的系统分析和设计的过程。
3.需求管理主要是对需求变化的管理,及如何有效控制和适应需求的变化。
4.数据流图表示了软件系统对数据的算法处理过程,即系统的物理模型。
5.需求分析的主要方法有SD法、OOA法及HIPO法等。
6.没有Do-case、Do-until形结构,就不能实现某些结构化程序,从而降低了程序的运行效率。
7.用面向对象方法分析、设计、实现软件,仍属线性的瀑布开发模型。
8.文档是影响软件可维护性的决定因素。
9.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。
10. 软件模块之间的耦合性越弱越好。
11. 软件开发小组的组成人员的素质应该好,而人数则不宜过多。
12. 总体设计的基本目的就是回答:"概括地说,系统应该如何实现?"这个问题。
13. 文档只起备忘录的作用,可以在软件开发完成后再整理生成。
14. 结构化软件开发的方法的工作模型是螺旋模型。
15. 总体设计的基本目的就是回答:"概括地说,系统应该如何实现?"这个问题。
16. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
1.N 2.Y 3. Y 4.N 5.N 6.Y 7.N 8.Y9.N 10.Y 11.Y 12. Y 13. N 14.N 15.Y 16.Y判断题:1.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
2.过程描述语言可以用于描述软件的系统结构。
3.继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。
4.快速原型模型可以有效地适应用户需求的动态变化。
5.在面向对象的需求分析方法中,建立动态模型是最主要的任务。
6.集成测试主要由用户来完成。
7.确认测试计划应该在可行性研究阶段制定8.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
一、选择题1.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和_。
( C ),A .详细计划B .可行性分析C .运行阶段 D.测试与排错2.在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的目标( A )A .需求分析阶段B .详细设计阶段 C.概要设计阶段 D .可行性研究阶段,3.软件工程的出现主要是由于(C ) ,A.程序设计方法学的影响B.其它工程科学的影响C.软件危机的出现D.计算机的发展,4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实旅的主要保证是(C)A.硬件环境B.软件开发的环境C.软件开发工具和软件开发的环境D.开发人员的素质5.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B)A.相互排斥B相互补充C独立使用 D.交替使用6.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A.基于瀑布模型的结构化方法 B.基于需求动态定义的原型化方法C.基于对象的面向对象的方法 D.基于数据的数据流开发方法7.在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B)A.结构化方法B原型化方法C面向对象的方法 D.控制流方法8.结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的(B)A.控制流 B.数据流 C.程序流 D.指令流9.软件开发的结构化生命周期方法将软件生命周期划分成(A)A.计划阶段.开发阶段.运行阶段B.计划阶段.编程阶段.测试阶段C.总体设计.详细设计.编程调试 D.需求分析.功能定义.系统设计10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C)A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段11.适合于面向对象方法学的软件生存周期模型是(B)A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型12.从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大的是(C)A.详细设计阶段B.概要设计阶段C.需求分析阶段D.测试和运行阶段13.从实用角度看,数据规范化在大多数场合选用第____范式。
单项选择题(每小题1分,共10分)1、在结构性的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( A )(A)需求分析阶段(B)详细设计阶段(C)概要设计阶段(D)可行性2、研究阶段软件工程方法中普遍定义的方法之一是结构化生命周期方法(SLC方法),下述哪一个论述不具有SLC方法的主要特征( C )A 严格定义需求B 划分开发阶段C 规范文档格式D 分析控制流程3、软件结构中两个模块之间有调用关系,传递简单数据值,相当于高级语言中的值传递,这两个模块之间的耦合是( D )(A)公共耦合(B)控制耦合(C)标记耦合(D)数据耦合4、软件维护的四类维护活动是( A )(A)改正性维护,适应性维护,完善性维护和预防性维护。
(B)适应性维护,完善性维护,抢救性维护和辅助性维护。
(C)改正性维护,适应性维护,完善性维护和辅助性维护。
(D)适应性维护,完善性维护,抢救性维护和预防性维护。
5、主要从( A )几个方面进行系统可行性研究。
(A)技术可行性,经济可行性,操作可行性。
(B)技术可行性,经济可行性,系统可行性。
(C)经济可行性,系统可行性,操作可行性。
(D)经济可行性,系统可行性,时间可行性。
6、进行需求分析可使用多种工具,但( C )是不适用的。
(A)数据流图(B)判定表(C)PAD图(D)数据字典7、软件需求分析阶段的工作,可以分为四个方面:对问题的识别、分析与综合、编写需求分析文档以及( B )(A)软件的总结(B)需求分析评审(C)阶段性报告(D)以上答案都不对8、OMT(Object Modelling Technique)方法的第一步是从问题的陈述入手,构造系统模型。
系统模型由对象模型、( C )组成。
A静态模型和功能模型 B动态模型和过程模型C动态模型和功能模型 D静态模型和操作模型9、为了表示项目管理功能工作中各项任务之间的进度衔接关系,常用的计划管理工具是( D )(A)程序结构图(B)数据流图(C) E-R图(D)甘特(Gantt)图①软件生命周期中所花费用最多的阶段是(D)A.详细设计B.软件编码C.软件测试D.软件维护②可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答。
信息隐藏技术综述信息隐藏简介信息隐藏(Information Hiding),也称作数据隐藏(Data Hiding),或称作数字水印(Digital Watermarking)。
简单来讲,信息隐藏是指将某一信号(一般称之为签字信号,Signature Signal)嵌入(embedding)另一信号(一般称之为主信号,Host Signal,或称之为掩护媒体,cover-media)的过程,掩护媒体经嵌入信息后变成一个伪装媒体(stegano-media)。
这一嵌入过程需要满足下列条件[3]:∙签字信号的不可感知性(Imperceptibility)。
换句话讲,签字信号嵌入后,主信号的感知特性没有明显的改变,签字信号被主信号"隐藏"了起来。
∙签字信号的鲁棒性(Robustness)。
签字信号对主信号的各种失真变换,如失真信号压缩、仿射变换、加噪、A/D或D/A转换等,以及各种恶意性攻击(MaliciousAttack),都应体现出一定的鲁棒性。
除非主信号的感知特性被明显的破坏,签字信号将很难被去除。
∙一般来讲,签字信号的嵌入不增加主信号的存储空间和传输带宽。
也就是说,签字信号嵌入后,"表面"上很难觉察到信息的改变。
信息隐藏的发展历史可以一直追溯到"匿形术(Steganography)"的使用。
"匿形术"一词来源于古希腊文中"隐藏的"和"图形"两个词语的组合。
虽然"匿形术"与"密码术(Cryptography)"都是致力于信息的保密技术,但是,两者的设计思想却完全不同。
"密码术"主要通过设计加密技术,使保密信息不可读,但是对于非授权者来讲,虽然他无法获知保密信息的具体内容,却能意识到保密信息的存在。
而"匿形术"则致力于通过设计精妙的方法,使得非授权者根本无从得知保密信息的存在与否。
2021年7月国开电大本科《软件工程》期末考试试题及答案说明:试卷号:1260课程代码:01250适用专业及学历层次:计算机科学与技术;本科考试:形考(纸考、比例30%);终考(纸考、比例70%)一、选择题1.软件工程的出现是由于(A)。
A.软件危机 B.计算机硬件技术的发展C.软件社会化的需要 D.计算机软件技术的发展2.软件工程强调将(D)的方法应用于软件的开发和维护过程之中。
A.规范化 B.系统化C.可度量D.以上全部3.软件开发活动的顺序应该是(A)。
A.问题定义、可行性研究、需求分析、设计、编码和测试B.问题定义、设计、可行性研究、编码和测试C.需求分析、设计、编码和测试D.需求分析、编码和测试、试运行4.系统物理模型用(A)表示。
A.系统流程图 B.数据流程图C.程序流程图 D.E-R图5。
关于软件需求特性不正确的描述是“软件需求具有(C)”。
A.多变性 B.模糊性C.准确性 D.主观性6.非直接耦合的模块独立性最强,(A)的模块独立性最弱。
A.内容耦合 B.数据耦合C.控制耦合 D.外部耦合7.信息隐藏的核心内容是(C)。
A.把数据都放在公共的区域B.数据不能被其他模块访问C.一个模块的内部信息不允许其他模块直接访问D.把信息加密,只能让有密钥的模块访问8.面向过程的方法最关心的是过程,而过程实施的对象是作为过程(A)传递的。
A.参数 B.主体C.过程 D.数据结构9.(C)用于描述系统的功能集。
A.组件视图 B.逻辑视图C.用例视图 D.对象视图10.随着模块规模减小,模块开发成本____,模块集成成本____。
(B)A.减小/减小 B.减小/增加C.增加/减小 D.增加/增加11.对象模型描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。
在面向对象方法中,由(B)实现。
A.顺序图B.类图C.状态图 D.组件图12.如果对象之间的耦合是通过(A)来实现的,则这种耦合就是交互耦合。
软件工程—简答题四、简答题1. 简述软件危机产生的缘故。
答案:软件危机产生的缘故有:(每点1分)(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发的治理困难。
由于软件规模大,结构复杂,又具有无形性,导致治理困难,进度操纵困难,质量操纵困难,可靠性无法保证。
(3)软件开发费用不断增加。
软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升专门快。
(4)软件开发技术、开发工具落后,生产率提高缓慢。
(5)生产方式落后。
软件仍旧采纳个体手工方式开发。
2. 简述需求分析的概念及需求分析的差不多任务。
答案:需求分析是指开发人员要准确明白得用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
(3分)需求分析的差不多任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须〝做什么〞的问题。
(2分)3. 简述数据流图的分类及每一类的特点。
答案:数据流图有两类:变换型数据流图和事务型数据流图。
(1分)变换型数据流图是由输入、处理和输出三部分组成,(1分)因此变化型数据流图是一个顺序结构。
(1分)事务型数据流图特点:事务处理中心将它的输入流分离成许多发散的数据流,形成许多加工路径,(1分)并依照输入的值选择其中一个路径来执行。
(1分)4. 简述建立对象模型的过程。
答案:建立对象模型的步骤如下:(每点1分)(1)确定类:标出来自问题域的相关对象类。
(2)预备数据字典:为所有建模实体预备一个数据字典,准确描述各对象类的精确含义,描述当前问题中的类的范畴,包括对类的成员、用法方面的假设或限制;(3)确定关联:确定二个或多个类之间的相互依靠;(4)确定属性:只考虑与具体应用直截了当相关的属性(5)使用继承来细化类:使用继承来共享公共结构,以此来重新组织类__全国2020年1月1.简述软件工程面临的问题。
《软件工程》试题A《软件工程》期末试题选择题(共30分)1.软件生命周期中所花费用最多的阶段是(D)A.详细设计 B.软件编码 C.软件测试 D.软件维护2.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答。
A.确定 B.行或不行 C.正确 D.无二义3.下列关于瀑布模型的描述正确的是(C)。
A.瀑布模型的核心是按照软件开发的时间顺序将问题简化。
B.瀑布模型具由于良好的灵活性。
C.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
D.利用瀑布模型,如果发现问题则修改的代价很低。
4.E-R图是用于描述应用系统的(B)数据模型A.逻辑结构B.概念结构C.数据结构D.实体关系5.软件测试的一条重要原则是(B)A.软件测试可以完全保证软件的质量B.测试可以发现程序中的错误,但不能够证明程序中没有错误C.测试能够完全证明程序的可靠性D .测试能够证明程序中没有错误6.确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于(C)A.集成测试B.恢复测试C.验收测试D.单元测试7.软件危机出现的本质原因是(A)A.人们对软件产品认识的不足以及对软件开发的内在规律的理解偏差B.软件维护费用的急剧增加C.软件生产技术进步缓慢D.软件规模庞大8.面向对象程序设计中的数据隐藏指的是(D)。
A.输入数据必须输入保密口令B.数据经过加密处理C. 对象内部数据结构上建有防火墙D.对象内部数据结构的不可访问性9.下面说法错误的是(D)A.抽象是为了降低问题的复杂性,可以得到问题领域中比较简单的概念B.模块的内聚性越低则模块的独立性越强C.耦合性越高则模块的独立性越弱D.在软件详细设计阶段,抽象的层次最低,系统的实现被完全精化10.下列不属于结构化设计工具的有(C)A.流程图B.PAD图C.数据流图D.N-S图11.软件是(C )。
A. 处理对象和处理规则的描述B. 程序C. 程序及其文档D. 计算机系统12.软件需求规格说明的内容不应包括(B)。
面向对象程序设计中的信息隐藏技术研究面向对象程序设计是一种常见的编程范例,主要通过对象之间的交互来实现程序功能。
其中,信息隐藏是一种重要的技术,可以有效保护程序的安全性和稳定性。
本文将就面向对象程序设计中的信息隐藏技术进行探讨,旨在为读者提供更深入和全面的了解。
一、信息隐藏的概念和作用信息隐藏,即通过各种手段,将程序中的某些信息隐藏起来,使得外部无法直接访问和修改。
这些信息包括类名、属性、方法和常量等,在程序中扮演着重要的角色。
信息隐藏的作用主要体现在以下几个方面:1. 增强程序的安全性和稳定性。
信息隐藏可以避免外部恶意访问和修改程序的内部数据,从而有效提升程序的安全性和稳定性。
2. 提高程序的灵活性和可维护性。
信息隐藏可以有效降低外部对程序内部实现细节的了解程度,从而提高程序的灵活性和可维护性。
3. 优化程序的性能和可读性。
信息隐藏可以使程序的实现更加简洁和高效,从而提高程序的运行性能和可读性。
二、信息隐藏的实现方式信息隐藏的实现方式主要有以下几种:1. 封装。
封装是一种常见的信息隐藏方式,主要通过将类中的属性和方法隐藏在类的内部,实现对外部的屏蔽。
封装不仅避免了外部对类内部数据的直接访问,还为类提供了更加灵活、高效和安全的操作方式。
2. 继承。
继承是一种派生类和基类之间的关系,通过继承可以获得基类的所有属性和方法。
但是,在继承过程中,有些基类的属性和方法是不希望被外部访问的,此时可以将其设置为protected或private,从而实现信息的隐藏。
3. 接口。
接口是一种约束性规范,通过接口可以规范类的行为和属性。
对接口的实现细节可以通过信息隐藏的手段进行屏蔽,保护类的内部细节和数据安全。
三、信息隐藏的注意事项在实现信息隐藏的过程中,还需要注意以下几点:1. 将属性和方法的可见性设置为合适的范围。
过度的信息隐藏会导致程序的复杂性增加,应该根据实际情况将属性和方法的可见性设置为合适的范围。
2. 加强对访问权限的管理。
南开大学22春“信息安全”《软件工程与软件测试技术》期末考试高频考点版(带答案)一.综合考核(共50题)1.功能模型是类似编译器之类系统的主要模型。
()A.正确B.错误参考答案:A2.验收测试的任务是验证软件的()。
A.可靠性B.正确性C.移植性D.有效性参考答案:D3.自顶向下集成测试不需要测试驱动模块,需要桩模块。
()A.正确B.错误参考答案:A4.需求分析的主要方法有()。
A.形式化分析方法B.PAD图描述C.结构化分析方法D.程序流程图参考答案:C面向对象的分析过程主要包括3项内容:理解、表达和验证。
()A.正确B.错误参考答案:A6.集成测试的主要方法有两个,一个是(),一个是()。
A.白盒测试方法、黑盒测试方法B.等价类划分方法、边缘值分析方法C.渐增式测试方法、非渐增式测试方法D.因果图方法、错误推测方法参考答案:C7.好程序的一个重要标准是源程序代码的逻辑简明清晰、易读易懂。
()A.正确B.错误参考答案:A8.应用执行对象的操作可以改变该对象的()。
A.行为B.功能C.属性D.数据参考答案:C9.使用白盒测试方法时确定测试数据应根据()和指定的覆盖标准。
A.程序的内部逻辑B.程序的复杂程度C.程序的难易程度D.程序的功能10.面向对象设计时,对象信息的隐藏主要是通过()实现的。
A.对象的封装性B.子类的继承性C.系统模块化D.模块的可重用参考答案:A11.软件生命周期的时期有()A.软件定义B.软件开发C.运行维护D.信息反馈参考答案:ABC12.衡量程序的质量仅需看它的逻辑是否正确,性能是否满足要求。
()A.正确B.错误参考答案:B13.面向对象设计中服务的设计可以分为两个步骤:确定类中应有的服务、设计实现服务的方法。
()A.正确B.错误参考答案:A14.软件就是程序,编写软件就是编写程序。
()参考答案:A15.发现错误多的模块,残留在模块中的错误也多。
()A.正确B.错误参考答案:A16.黑盒测试是从()观点的测试,白盒测试是从()观点的测试。
封装和信息隐藏在面向对象编程中的作用面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它以对象为基本单位,通过封装、继承和多态等机制实现代码的组织和重用。
其中,封装和信息隐藏是OOP的两个重要概念和特性,它们在面向对象编程中起到了关键作用。
本文将探讨封装和信息隐藏在面向对象编程中的作用以及其优势。
一、封装的作用封装是指将数据和对数据的操作封装在一起,形成一个独立的单位——对象。
封装通过将类的属性和方法进行封装,来保护对象的内部实现细节和安全性。
封装的作用包括:1. 数据隐私保护:封装将类的属性隐藏,只开放有限的接口供外部访问,从而保护数据不被随意修改,增加了数据安全性。
2. 代码复用:封装将属性和方法封装在一个对象中,可以实现对象的复用。
其他程序可以通过创建该对象的实例,直接调用其方法来完成相同的操作。
3. 降低耦合性:封装将数据和操作封装在一起,对象的内部实现对外部是透明的,简化了使用该对象的程序的复杂性,降低了各个部分之间的耦合性。
封装的基本原则是信息隐藏,即将对象的实现细节和相关的数据尽可能隐藏起来。
通过对外部提供有限的接口,以保持对象的私密性,提高代码的可靠性和可读性。
二、信息隐藏的作用信息隐藏是一种编程方式,它通过限制外部访问对象的属性和方法,只开放必要的接口,从而隐藏对象的内部实现细节和机制。
信息隐藏的作用包括:1. 保护对象:信息隐藏限制了外部对对象的直接访问,使得对象的实现细节对外部是不可见的。
这样可以防止错误的修改和滥用,提高代码的安全性和稳定性。
2. 封装变化:通过隐藏对象的内部实现细节,可以使得该细节的变化对外部是透明的,只需要对外提供一致的接口。
当对象的内部实现需要改变时,只需要修改这些接口的实现,而不需要修改外部的代码。
3. 提高代码可维护性:信息隐藏可以提高代码的可维护性。
当对象的内部实现发生变化时,只需要修改封装的部分,而不会影响包含该对象的其他代码。
14、与设计测试数据无关的文档是()A、需求分析说明书B、概要设计说明书C、源程序D、项目开发计划15、软件测试中的测试实例主要由输入数据和()组成A、测试规则B、测试计划C、预期输出结果D、以往测试记录分析1.项目A是为银行开发ATM(自动取款机)软件,项目B是为网络公司开发网络数据流分析软件,请问按照面向数据流设计方法(SD法),两个项目应分别采用何种方法将需求分析的功能模型转换成软件结构,为什么?(6分)2.某保险公司对投保人的汽车保费计算方法如下:单身男,年龄30岁以下(含30岁),计保费标准A,30岁以上计保费标准B;已婚男30岁以下(含30岁),计保费标准C,30岁以上计保费标准D,单身女,年龄25岁以下(含25岁),计保费标准E,25岁以上计保费标准3、每写出一种语言或工具1分,写出应用领域1分,如C#(C/B/S 结构软件),JA V A (B/S 结构软件),C++(系统软件),DEPHI (开发C/S 结构软件)、PB (开发C/S 结构下基于数据库的软件)。
四、综合题(总共25分)1、共10分每对一个对象类1分,写出一个对象类的关系0.5分2、测试题共15分测试用例:每设计对一个等价类0.5分五、分析设计题(总共25分)对象类图10分,每写对1个对象类1分,1个联系和多重性1分*功能模型:用例图7分,每写对1个用例1分,1个行为者1分动态模型:顺序图8分,每写对1个对象类和生命线0.5分,1个事件1分一、判断题:每小题1分,共15分,在正确的打上√,错误的打上X1.快速原型模型可以有效地适应用户需求的动态变化。
()2.数据字典是对数据流图中的数据流,处理过程、数据存储、数据的源和终点进行详细定义。
()3.统一的建模语言,是一种软件工程设计语言。
()4.模块化使程序设计比较方便,但比较难以维护。
()5.一个模块实际上就是一个进程。
()6.过程描述语言可以用于描述软件的系统结构。
1.面向对象程序设计中的数据隐藏指的是参考答案为: DA.输入数据必须输入保密口令B.数据经过加密处理 C. 对象内部数据结构上建有防火墙D.对象内部数据结构的不可访问性[解析]输入数据必须输入保密口令和数据经过加密处理都不是面向对象程序设计的特征;对象内部数据结构上也不可能建有防火墙,所以它们都不是面向对象程序设计中所指的数据隐藏。
面向对象程序设计系统中的封装单位是对象,对象之间只能通过接口进行信息交流,外部不能对对象中的数据随意地进行访问,这就造成了对象内部数据结构的不可访问性,也使得数据被隐藏在对象中。
这就是面向对象程序设计中的数据隐藏所指。
2.下列各项中符合函数重载必须满足的条件的是参考答案为:DA.必须有不同的参数个数B.对应的参数类型必须不相同 C. A和B必须同时满足D.A和B只要满足一个即可[解析]我们知道,在同一个作用域中,要实现函数重载必须满足的条件的是:① 有不同的参数个数;或者② 对应的参数有不相同的数据类型,即①和②中只要有一个满足就可以了。
当然两者都满足更好,但这不是必须的。
3.下列带缺省值参数的函数说明中,正确的说明是参考答案为:AA.int Fun(int x,int y=2,int z=3); B.int Fun(int x=1,int y,int z=3);C. int Fun(int x,int y=2,int z); D.int Fun(int x=1,int y,int z=3);[解析]在带缺省值参数的函数说明中,正确的说明应该是无缺省值的参数依次排列在参数表的左边,排完无缺省值的参数后,再依次排列带缺省值的参数。
从所给出的四个选项来看,只有“int Fun(int x,int y=2,int z=3)”符合这条规定,其它的都不符合。
4.有如下的对类“CSample”的说明,其中()是错误的。
class CSample { 参考答案为:AA.int a=23;B.CSample();public:C.CSample(int val);D.~ CSample();}[解析]在上面对类“CSample”说明中,“CSample()”和“CSample(int val)”是该类重载的构造函数、“~ CSample()”是该类的析构函数,这三个语句都是正确的。
面向对象设计的三个基本要素面向对象的三个基本特征是:封装、继承、多态。
1·封装性封装性是一种信息隐蔽技术,他体现于类的说明,是对象重要的特性。
封装使得数据和操作数据的方法封装为一个整体,想成独立性很强的模块,使得用户只能看到对象的外部特性(对象可以接受拿些信息,可以进行何种处理),而对象的内部特性(内部私有属性和实现处理能力的算法)用户是看不到的。
简而言之就是说,封装使对象的设计者与对象的使用者分开,使用者只要知道对象可以做什么就可以了,无需知道具体是怎么实现的。
借助封装有助于提高类和系统的安全性。
2·继承性继承是一种由已有类创建子类的机制,利用继承,可以先创建一个共有属性的一般类,根据这个类再创建具有特殊属性的子类,被继承的类成为父类,当然子类也可以成为父类来继续向下扩展。
3·多态性同一个信息被不同的对象接收到时可能产生不同的行为,这就是多态性。
有继承(接口)有重写,父类引用指向子类对象,就会产生多态。
多态可以改善程序的组织架构,提高程序的可扩展性。
二、面向对象设计的五个基本设计原则面向对象设计的五个基本设计原则是:单一职责原则(SRP)、开放封闭原则(OCP)、Liskov替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)1·单一职责原则(Single-Responsibility Principle)其核心思想为:一个类只做一件事情,只有一个引起他的变化。
单一职责原则可以看做是低耦合,高内聚在面向对象原则上的隐身,将职责定义为引起变化的原因,以提高内举行来减少引起变化的原因。
职责过多可能引起他变化的原因也就越多,这将导致职责依赖,相互之间产生影响,从而大大损伤内聚性和耦合度。
单一职责就是指,只有一种单一的功能,不要为类实现过多的功能点,有些功能可以定义为接口来实现,以保证只有一个引起他变化的原因。
专注是一个人优良的品质。
同样的,单一也是一个类的优良设计,杂交不清的职责将使得代码看起来特别别扭,牵一发动全身,有失没敢和必然导致丑陋的系统错误风险。