次の a~d のうち,オブジェクト指向の基本概念として適切なものだけを全て挙げたものはどれか。 a クラス b 継承 c データの正規化 d ホワイトボックステスト
平成24年度 秋期 ITパスポート試験 問45
这道题的解析和你的作答记录。
問 45
- ア
正解 正确答案是ア「a,b」。面向对象是指把数据(属性)与操作这些数据的过程(方法)合为一体的对象作为部件,用来搭建系统的思想。作为其基本概念被必定列举的有类、继承、封装、多态(多形性)等,本题的 a 和 b 正属于此列。a 的类是把具有相同性质的对象所共有的属性和操作汇总定义而成的「模板」,由类实际生成的实体称为实例(对象)。例如,只要在「员工」类中定义了员工编号、姓名这些属性以及计算工资这一操作,每一名具体的员工就都可以作为它的实例来处理。b 的继承(inheritance)是指新类(子类)自动承接既有类(超类、父类)所具有的属性和操作,只需追加或修改差异部分即可定义类的机制。由于可以把公共部分归并到上层类,重复的描述随之减少,复用性和可维护性得以提高。另一方面,c 和 d 分别是关系数据库设计与软件测试的术语,并不是面向对象的概念。因此,不多不少只列出面向对象基本概念的是 a 与 b 的组合,也就是ア。
错误イ
a 类确实是面向对象的基本概念,但 c 数据规范化是错的。规范化是关系数据库的设计技法,把混杂在一张表中的项目按第一范式、第二范式、第三范式逐级拆分,以防止数据重复以及插入、更新、删除时产生的不一致(更新异常)。它处理的对象是表与项目之间的函数依赖关系,而不是对象或类的结构,因此不包含在面向对象的基本概念之中。所以 a 与 c 的组合不恰当。
错误ウ
b 继承确实是面向对象的基本概念,但 c 数据规范化是错的,这一点与イ相同,规范化不过是关系数据库设计的概念。而且,本选项并没有包含同样正确的概念 a 类,因此即使去掉 c,也仍不满足题目「仅将适当的项目全部列出」这一要求。需要注意的是,「全部列出」和「不混入多余的项」这两点都必须做到。
错误エ
c 数据规范化(关系数据库的设计技法)和 d 白盒测试(着眼于模块内部的分支、路径等逻辑结构来设计测试用例的测试技法,与不看内部结构、仅凭输入与输出的关系进行验证的黑盒测试相对)都不是面向对象的概念。本选项完全没有包含作为面向对象基本概念的 a 类和 b 继承,是双重错误的组合。
- 面向对象的基本概念 —— 把属性和操作汇总而成的模板是类,由类生成的实体是实例,承接既有类的属性和操作并只定义差异部分的是继承。此外还要掌握:把内部数据隐藏起来、只允许通过公开的操作来处理的封装,以及对同一消息各个对象表现出不同行为的多态(多形性),它们同样是基本概念。
- 按领域区分容易混淆的术语 —— 数据规范化是关系数据库设计(排除重复与更新异常)的术语,白盒测试是软件测试技法(基于内部逻辑结构设计测试用例)的术语。这类「仅将适当的项目全部列出」的题型,必须选出既不遗漏正确项、又不混入错误项的选项。