面向对象技术&UML-复习答案

面向对象技术&UML-复习答案
面向对象技术&UML-复习答案

复习

1.软件生命周期的几个阶段

软件生命周期主要包括以下几个阶段:

需求分析(Requirement Analysis);

软件设计(Software Design);

编码(Coding/Programming);

测试/调试(Testing/Debug);

运行/维护(Running/Maintenance)

2.述说Rational Unified Process的三个核心特征

RUP的基本特征:

(1)受控的迭代(Iterative)式增量(Incremental)开发

(2)用例(Use Cases)驱动

(3)以软件体系结构为中心

3.简述软件开发过程的实质

软件开发过程的实质:在开发过程中定义并构建一系列模型,通过这些模型越来越详细地描述系统,直到对需求的充分了解,能够开始编程。

4.UML的“4+1”视图

Use Case 视图:用于描述系统的功能集,它是从系统使用者的角度出发,对系统的抽象表示。它只考虑系统提供什么样的功能。包括以下图:用例图、序列图、协作图和活动图。Logical 视图:用来表示系统的概念设计、详细设计、子系统结构、动态模型等,包括类图、包的组织方式。包括以下图:类图、对象图、包图和状态图。

Process视图:与logical视图相似,侧重于描述系统的线程和进程,对系统中重要对象的同步机制和通讯过程进行描述。

Development 视图:描述代码组件的组织方式。包括:Component图。

Deployment 视图:描述部署系统的物理结构图,包括系统硬件、软件构件的拓扑结构。5.用例图的三要素

用例图组成的三要素:

用例(Use Case):描述的是用户可见的需求,一个具体的用户目标

参与者(Actor):使用系统的人或其他系统

参与者与用例之间的关系(Relationship)

6.简述用例建模的步骤

识别Actor;

捕获系统功能特性;

合并功能特性获得用例;

绘制用例图;

细化用例描述;

7.列举三种用例之间的关系

用例之间的关系:

泛化(Generalization):抽取一些用例共同的属性,定义一个基础用例;

包含(include):一个用例的执行要用到另外的用例;

扩展(extend):把新的用例(功能)插入到已有用例(基础用例);

8.根据下图阐述包之间的关系。改动Account包中的元素时,需要注意什么问题。

(注:如果A包依赖B包,表示B包中的元素发生修改,则要检查A包中的元素是否也需要修改,反之是不需要的)

因为Customer包依赖Account包,当Account中的元素发生修改时,应当先检查Customer包中的元素是否也需要修改,如果Customer包的元素不需要修改,则相应地也不用修改Loan包中的元素,如果Customer包中的元素发生修改时,因为Loan包依赖Customer 包,则要检查Loan包中的元素是否也需要修改。

9.RUP把系统类划分的三种类型

RUP中把系统类划分为三大类型(stereotype):边界类(boundary)、控制类(Controller)、实体类(Entity);

boundary:处于系统与外界的交界处,通常用来完成参与者与系统之间的交互。Controller:协调控制其他类的工作,主要用来体现程序的执行逻辑。

Entity:描述具体的实现,维护数据,通常映射到数据库基表或文件。

10.列举类之间的关系

泛化(Generalization):表示类之间的继承;

关联(Association):对象之间发生的关系;

聚合(Aggregation):整体与局部;

组成(Composition):强聚合关系;

依赖(Dependency):一个对象的方法要用到另外的对象作为参数;

抽象类&接口;

11.比较描述用例的事件流(Flow of Events)和活动图(Activity Diagram)的异同

12.简述时序图(Sequence Diagram)和合作图(Collaboration Diagram)的异同

时序图是按照时间的先后顺序来描述对象之间的交互过程;

与顺序图类似,也是用于描述对象之间的交互关系;

两种描述的内容相同(语义相同),都是用于描述系统的动态特性,只是表现形式不同;

合作图强调交互对象的组织,对于一些复杂的交互,适合采用合作图;

13.用包组织的方式举出一种典型的系统设计架构

案例:

1.大学选课系统是与学生有着紧密的联系的系统。学生可以登录该系统选修课程,查看分数。教授可以登录到系统选择课程授课,提交学生成绩。学校另有一个系统里面保存有课程目录信息,选课系统需要和课程目录系统通讯以取得课程目录信息。分析其UML模型(actor:学生、教师、课程目录系统;学生用例:登陆、查看分数、选修课程;老师用例:登陆、递交学生成绩、选择课程。然后画出用例模型图)

采用用例驱动的方法分析需求的主要任务是识别参与者和用例,并建立用例模型,主要分为以下三个部分。

(一)识别参与者(角色)

参与者表示与系统进行交互的任何人或物。可以包括人(不只是最终用户)、外部系统和其它机构。

通过分析选课系统的功能需求,确定有以下三个参与者:

(1)学生:在系统中申请注册讨论班的人

(2)教师:完成验证注册信息的人或外部系统

(3)课程目录系统:指导或协助讨论班和管理学生成绩

(二)识别用例(用况)

用例是一系列活动,描述真实世界中参与者与系统相互交互的方式。

通过分析选课系统的功能需求,确定有如下用例:

(1)学生用例:

1)登陆

2)查看分数

3)选修课程

(2)老师用例:

1)登陆

2)递交学生成绩

3)选修课程

(三)建立用例模型

2.软件学院暑期短学期开设实训课,聘请的每位教师分别承担一门实训课,每位学生只能选其中的一门课程,每门课程的人数在40-60人之间(这段描述中有如下实体:学生、实训课程、老师,老师和课程是一对一的关系,课程和学生是1对多的关系,然后建立类图模型)

静态建模主要分为两步:

1)定义类

2)确定类的名字、属性和操作,建立类图。

第1步:识别分析类。

分析用例模型的每个用例,确定实现用例的类,分析每个类的职责、属性和关联。

将参与用例实现的类收集到一个类图中。

界面类——描述系统与角色之间的接口。

控制类——在分析模型内表示协调、顺序、事务处理以及控制其他对象的类。

实体型——为需要长久保存的信息进行建模的类。第2步构造类图

面向对象技术Java 期末复习试卷(三)

期末复习试卷(三) 一、单项选择题 1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源 文件名是() A. teststudent.java B. teststudent .class C. TestStudent.java D. TestStudent.class 正确答案:C 解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。 2、关于下面的代码,哪个描述是正确的? public class Test{ public static void main(String[] args){ Integer n1 = new Integer(3); Object n2 = new Integer(4); System.out.println(https://www.360docs.net/doc/8e2719922.html,pareTo(n2)); } } A. 可以编译通过,可以运行,并得到预期结果。 B. 可以编译通过,可以运行,但不能得到预期结果。 C. 可以编译通过,但又运行错误。 D. 有编译错误。 正确答案:D 解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,

提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T 被替换为Integer,如下图: 因此,Integer类中compareTo()方法的定义如下: 因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer: System.out.println(https://www.360docs.net/doc/8e2719922.html,pareTo(n2)); 正确写法如下: System.out.println(https://www.360docs.net/doc/8e2719922.html,pareTo((Integer) n2)); 类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。 3、下面哪种类型不是引用数据类型?() A. 数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean

《面向对象程序设计》期末复习题及答案2

面向对象程序设计期末复习指导—填空题 1. C++语言的编译单位是扩展名为__________的__________文件。 2.用于输出表达式值的标准输出流对象是_________。 3.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。 4. 一条表达式语句必须以______作为结束符。 5.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 6.当使用_______保留字作为函数类型时,该函数不返回任何值。 7. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。 8. 十进制常数245对应的十六进制的C++表示为__________。 9. float和double类型的数据分别占用_________和________个字节。 10. 字符串”This\’s a book.\n”的长度为__________。 11. 假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为__________和__________。 12.假定x是一个逻辑量,则x && FALSE的值为__________。 13. 假定x是一个逻辑量,则x && !x的值为__________。 14. 数学算式 y x xy 3 的C++表达式为________________。 15.常数-4.205和6.7E-9分别具有__________和__________位有效数字。 16. 作为语句标号使用的C++保留字case和defaule只能用于________语句的定义体中。 17. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。 18.在程序执行完________函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。 19.存储字符’a’和字符串”a”分别需要占用________和________个字节。 20. 字符串”a:\\xxk\\数据”的长度为________。 21. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。 22. 若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行________函数的调用来实现。 23.如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++保留字。 24. 在函数模板的参数中,用class修饰的参数称为__________参数。 25. 如果一个函数定义中使用了__________修饰,则该函数不允许被其它文件中的函数调用。 26.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的__________。 27. C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和__________。

面向对象试题(标准答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

面向对象程序设计期末复习题及答案

C++面向对象程序设计复习 试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。15题,每小题2分,共30分) [主要从作业题目中抽出来] 2. 填空题。(10题,每小题3分,共30分) 3、阅读程序,写出程序运行结果。【也称计算题】(3题,每小题5分,共15分) 4、程序编制题【也称综合分析题】。(第1、2题每题8分,第3题9分,共 25分) 重点复习内容 打*号是重点,打▲号是编程题出题范围 * 基本概念,对象,消息,类。 面向对象系统特性,封装性,继承性,多态性。 *▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套。 静态成员,对象数组,友元。 *函数重载。 运算符重载。 *引用定义与引用参数 * 基类与派生类的定义。 * 基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。

多继承与虚基类。 *多态性与虚函数。 纯虚函数、抽象类。 *▲函数模板。 *▲使用类来定义对象并在程序中的应用题型样题 填空题 1. 假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为_________。 答案:10 2.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_________。答案:公有继承的公有成员 3.能作为重载函数的调用的依据是_________。 答案:参数个数、参数类型 4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________ 答案:eof 5.函数重载是指_________。 答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 6.在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。 答案:参数个数 阅读程序例题【计算题】 1.分析以下程序的执行结果 #include class Sample

面向对象面试题

面向对象面试题 1、什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数; 现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的。 2、简述private、protected、public、internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 当前程序集内可以访问。 3、https://www.360docs.net/doc/8e2719922.html,中的五个主要对象 Connection:主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在https://www.360docs.net/doc/8e2719922.html, 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。 Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源。 DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Comm and 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command 对象上,并提供了许多配合DataSet 使用的功能。 DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是https://www.360docs.net/doc/8e2719922.html, 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。 DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。 https://www.360docs.net/doc/8e2719922.html, 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来

面向对象技术(本)阶段练习四资料

《面向对象技术(本)》课程第四阶段练习题 、填充题 1超类的private成员不能被子类继承。 2.在声明一个类变量时,前面必须要加上static修饰符。 3. import java.util.*;语句可导入Java的实用包中所有的类。 4.方法的覆盖是后期绑定,方法的重载是前期绑定。 5.写出一个表达式:输出角度300的余弦值Math.cos(30*3.14/I80。 二、选择题 旦1.找出有关类的正确说法。 a. 类具有封装性,所以类的数据是不能被访问的。 b. 类具有封装性,但可以通过类的公共接口访问类 中的数据。 c. 声明一个类时,必须用Public修饰符。 d. 每个类中,必须有main方法,否则程序无法运 行。 e. A 2.将类的成员的访问权限设置为默认的,则该成员能被 a. 同一包中的类访问 b. 其它包中的类访问 c. 所有的类访问 d. 所有的类的子类访问

C 3.下面哪一种是正确的方法重栽 a. int fun (i nt afloat b{} float fun (i nt a,float b{} b. float fun (i nt a,float b{} float fun (i nt x,float y{} c. float fun( float a{} float fun (float a,float b{} d. flaot fun 1(i nt a,float b{} float fun 2(i nt a,float b{} D 4.下面关于继承的说法那个是正确的 a. 超类的对象就是子类的对象。 b. 一个类可以有几个超类。 c. 一个类只能有一个子类。 d. 一个类只能有一个超类。 C 5.下面关于多态性的说法那个是正确的 a. 一个类中,不能有同名的方法。 b. 子类中不能有和父类中同名的方法。 c. 子类中可以有和父类中同名且参数相同的方法。 d. 多态性就是方法的名字可以一样,但返回的类型必须不一样。 三、简答题 1. 什么是类,什么是对象? 在面向对象的程序设计语言中,类是一种特殊属性类型,类可以看作具有共同属性和行为的

面向对象期末测试题(带答案).doc

济南大学2009~2010 学年第二学期课程考试试卷 课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 … … …… …… …………………………装……………… …………订………………… …… …线 …… …… …… … …… …… …… …… …

C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:(D) A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?(B) A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是(D) A.private B.public C.protected D.final 8.方法内的形参:(B) A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:(A) A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:(C)A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?(B) A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间

(完整版)面向对象软件测试技术研究

面向对象软件测试技术研究 一、引言 软件测试是伴随着软件的产生而产生的。软件危机的频繁出现促使了软件测试的地位得到了大幅提升。软件测试已经不仅仅是局限于软件开发过程中的一个阶段,它已经开始贯穿于整个软件开发过程,成为软件产品质量控制与质量管理的重要手段之一。 软件测试技术作为软件工程学科的一个分支,是保证软件质量和可靠性的关键,因此它也是软件开发过程中的一个重要环节。它的核心思想是:对于输入域的特定输入,观察软件的执行结果,验证该结果与期望结果是否一致,然后根据结果作相应的和调整。在测试过程中,测试用例的选择决定测试的有效性,这也就直接影响到成本,是软件测试的关键和难点。目前,软件测试技术的发展还不是很成熟,测试人员在选择测试用例时通常根据直觉和经验进行,给测试带来很大的盲目性,最终导致的后果是使软件后期维护的费用在成本中居高不下。科学生成测试用例对提高软件质量不仅重要而且必要。 随着面向对象软件开发技术的广泛应用和软件测试自动化的要求,特别是基于的软件开发技术的逐渐普及,基于模型的软件测试逐渐得到了软件开发人员和软件测试人员的认可和接受。它是一种新兴的测试用例生成技术。有优于以前的测试技术的方面。其中模型以其定义良好、功能强大、普遍适用的优点,为基于模型的测试提供了非常好的契机。 二、面向对象特征对软件测试的影响 面向对象技术是一个全新的开发模式,具有以下特点: (1)它要综合考虑软件开发过程所有阶段。 (2)在软件开发的整个生存周期中,每个阶段之间是连续的。 (3)开发过程分为面向对象分析(00A)、面向对象设计(OOD)、面向对象编程(OOP)、面向对象测试(OOT)四个连续的部分。 Coad和Yourdon给面}向对象的概念下了一个定义: 面向对象=对象+类+继承+通信 如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。一个而向对象的程序的每一个组成部分都是对象,计算是通过对象和对象之间的通信来执行的。 面向对象技术的本质是定义了类的抽象,将变量和与作用于它的操作封装到一块。然后用不同的类和方法组合成一个对象系统。面向对象软件将传统软件中的一个过程或一个方法内的复杂性转移到对象之间的交互中。面向对象语言一些本质特征形成了如下的一些新的故障、错误风险。

UML面向对象技术期末复习整理

UML面向对象技术期末复习整理 第一章 1、UML支撑软件整个生命周期 2、对象:面向对象系统的基本构造块,是一些相关的变量和方法的软件集 3、事件:指一种由系统预先定义而由用户或系统发出的动作 4、面向对象的基本特征:抽象,封装,继承,多态 5、模型:对现实客观世界的形状或状态的抽象模拟和简化 6、UML定义:是对软件密集系统进行可视化建模的一种语言,也是为面向对象开发系统的产品进行说明、可视化、构造和编制问的一种标准语言 7、UML可贯穿软件开发周期的每一阶段,最适用于数据建模、业务建模、对象建模、组件建模 填空题 1、统一建模语言UML是绘制软件蓝图的标准工具语言,可以对软件系统产品进 行说明、可视化、构造和编制文档 2、UML在实际软件项目中,可以用于构造各种类型系统的业务模型和软件模 型。 3、软件的开发模式有瀑布模型、喷泉模型、基于构件的开发模型和XP方法。 4、面向对象程序的三大要素是多态、封装和继承。 5、瀑布模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的 问题。 选择题 1、对象程序的基本特征是:抽象、封装、继承、多态 2、类包含的要素有:名字、属性、操作 3、下列关于类与对象的关系说法不正确的是:有些对象是不能被抽象类的 4、面向对象方法中的继承机制是子类可以自动地拥有(复制)父类全部属性和 操作 5、建立对象的动态模型一般包含的步骤有:准备脚本、确定事件、准备事件 跟踪表、构造状态图 第二章 1、UML的概念和模型分为静态结构、动态行为、实现构造、模型组织和扩展机制这几个机制 2、面向对象的事物分为:结构事物、行为事物、分组事物、注释事物

成人教育 《面向对象程序设计》期末考试复习题及参考答案

面向对象程序设计复习题二 一、填空 1.程序的三种常见结构是、、,其中 结构是程序的默认结构。 2.同名方法给出不同的实现,并通过参数类型或个数进行区分,称 为。 3.和“继承”匹配的概念是。 4.由类构建对象的过程称为。 5.抽象类是含有的类。 6.实现软件复用有两种方式,分别为、、。 7.有定义const int *p,p称为。 8.通过继承产生的类称为。 9.virtual关键字在C++中有两个用处,分贝是,和。 10.方法重载和实现了多态性。 11.请给出C++外的另外一种支持面向对象设计语言。 12.类的三个要素是、、。 13.对象释放前执行的函数是。 二、名词解释 1、构造函数 2、对象 3、运算符重载 4、析构函数

5. 面向对象 6. 继承 三、简答 1.比较类和结构体? 2.重载的意义? 3.抽象类的作用和意义? 4.组合与继承的区别? 四、辩析 1.任何父类对象都可以被子类对象替代。 2.public修饰符号破坏了数据的开放性。 3.private继承方式不能产生子类。 4.不能实例化的类一定是抽象类。 五、综合回答 1.简述多态的实现机制。 2.谈谈多态的意义。 3.面向对象程序设计思想的优点和缺点。

面向对象程序设计复习题二答案一、填空 (1)顺序 (2)选择 (3)循环 (4)顺序 (5)函数重载 (6)抽象 (7)实例化 (8)纯虚函数 (9)继承 (10) 组合 (9)和(10)不区分顺序 (11)常量指针 (12)派生类 (13)虚函数 (14)虚拟继承 (13)和(14)不区分顺序 (15)覆盖 (16)Java或者C# (17)类的标识 (18)类的状态

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

Java面向对象测试试题(经典)

《使用实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在类中,使用以下()声明语句来定义公有的型常量。 A. = 100; B. = 100; C. = 100; D. = 100; 2) 在中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定代码如下所示,在横线处新增下列()方法,是对方法的重载。 { ( x, y, z) {} } A. ( x, y, z){ 0; } B. ( x, y, z){ 0; } C. ( x, z){ }

D. ( z, y, x){ } 4) 在中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是 C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5) 下面代码的运行结果是()。 { ; 名字 0; 健康值 ; 性别 () { = 10; = "雄"; ("执行构造方法。"); } () { ("企鹅的名字是" + + ",健康值是" + + ",性别是" + "。"); } ([] ) { = (); (); } } A. 企鹅的名字是,健康值是10,性别是雄。 B. 执行构造方法。

企鹅的名字是,健康值是0,性别是。 C. 企鹅的名字是,健康值是0,性别是。 D. 执行构造方法。 企鹅的名字是,健康值是10,性别是雄。 6) 下列选项中关于中封装的说法错误的是()。 A. 封装就是将属性私有化,提供公有的方法访问私有属性 B. 属性的访问方法包括方法和方法 C. 方法用于赋值、方法用于取值 D. 类的属性必须进行封装,否则无法通过编译 7) 使用实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是()。 A. 使用赋值和取值方法访问属性 B. 编写常规方法访问属性 C. 在赋值和取值方法中,加入对属性的存取限制 D. 编写方法创建对象,调用赋值和取值方法访问属性 8) 分析如下所示的代码,其中关键字的意思是()。 { ; () { ;

面向对象技术Java-期末复习试卷(四)

期末复习试卷(四) 一、单项选择题 1、关于静态变量的概念,下列哪一个正确 A. 一旦一个静态变量被分配,它的值就不允许改变. B. 一个静态变量在方法中被创建,它在被调用前保留上一次调用的结果. C. 在任意多个类的实例中,它们共享类定义的静态变量 D. 在任意多个类的实例中,它们各有自己的静态变量. 正确答案:B 2、选出下面不能作为void Med(int x)方法重载的声明。 A. void Med (double y) B. int Med (int y) C. double Med (int x, int y) D. public float Med (float x) 正确答案:B 3、下列哪一个不正确 A. 一个抽象类必须定义抽象方法. B. 定义了抽象方法的类必定是抽象类. C. 一个接口中,定义的每一个方法必须是抽象方法. D. 一个接口中,定义的每一个成员变量必须是常量. 正确答案:A 4、Circle是GeometricObject的子类。如果有语句:Circle circle = new Circle(1);GeometricObject object = new GeometricObject();那么下面哪个布尔表达式的值为false? A. (circle instanceof GeometricObject) B. (object instanceof GeometricObject)

C. (circle instanceof Circle) D. (object instanceof Circle) 正确答案:D 5、下列关于变量的叙述哪个是错的? A. 实例变量是类的成员变量 B. 实例变量用关键字static声明 C. 在方法中定义的局部变量在该方法被执行时创建 D. 局部变量在使用前必须被初始化 正确答案:B 二、程序题 1、编写一个应用程序,模拟机动车的加速和减速功能。机动车类Vehicle的UML图如 下,其中speedUp()方法实现加速功能,速度上限为240 km/h;speedDown()实现降速功能,下限为0 km/h。 解题要求:编写测试程序,创建Vehicle对象,设置初始速度为100 km/h,调用speedDown()方法减速5 km,再调用speedUp()方法提速10 km,输出车辆的最终速度。

面向对象分析与设计_期末复习_2017-2018-2

《面向对象分析与设计》期末复习 2017-2018学年-第2学期 1、题型介绍: 选择题20 * 1分= 20分 填空题5* 2分= 10分 简答题 4 * 7分= 28分 建模分析论述题4题(第1题10分,第2题8分,第3题8分,第4题16分,共42分)= 40分 2、选择题 1、()不是对象具有的特性。 A.标识 B.继承 C.顺序 D.多态性 2、封装是把对象的()结合在一起,组成一个独立的对象。 A.属性和操作 B.信息流 C.消息和事件 D.数据的集合 3、()不是面向对象的典型方法。 A.Coad& Yourdon 方法 B.维也纳方法 C.OMT方法 D.Booch方法 4、UML中有4种关系,分别是依赖、泛化、关联和() A.集成 B.合作 C.实现 D 抽象 5、下列关于状态图的说法中,正确的是() A.状态图是UML中对系统的静态方面进行建模的5种图之一。 B.状态图是活动图的一个特例,状态图中的多数状态是活动状态。 C.状态图是对一个对象的生命周期进行建模,描述对象在其生存期间的动态行为。 D.状态图强调对有几个对象参与的活动过程建模,而活动图更强调对单个反应型对象建模。 6、UML的()模型图由类图、对象图、包图、组件图、和部署图组成。 A.用例 B.静态 C.动态 D.系统。 7、UML的()模型图活动图、顺序图、状态图、写协作图组成。 A.用例 B.静态 C.动态 D.系统。 8、UML的最终产物就是最后提交的可执行的软件系统和() A.用户手册 B.类图 C.动态图 D.相应的软件文档资料

9、在UML的需求分析建模中,()模型图必须与用户反复交流并加以确认。 A.配置 B.用例 C.包 D.动态 10、下面不是用例之间主要关系的是() A.扩展 B.包含 C.依赖 D.泛化 11、对于一个电子商务网站而言,以下不适合作为用例的选项是() A.登录 B.预定商品 C.购物车 D.结账 12、UML的客户需求分析模型包括()模型、类图、对象图和活动图。 A.用例 B.静态 C.动态 D.系统 13、UML客户需求分析产生的用例模型描述了系统的() A.状态 B.体系结构 C.静态模型 D.功能要求 14、在UML的需求分析模型中,用例建模必须与()反复交流并加以确认。 A.软件生产商 B.用户 C.软件开发人员 D.问题领域的专家 15、在UML的需求分析建模中,对用例模型中的用例进行细化说明应使用() A.活动图 B.状态图 C.配置图 D.组件图 16、类图应该画在Rational Rose的()视图中。 A、Use Case View B、Login View C、Component View D、Deployment View 17、类通常可以分为实体类、()和边界类。 A 、父类B、子类C、控制类D、祖先类 18、对象特征的要素是()。 A、状态 B、行为 C、标识 D、属性 19、下列关于接口的关系说法不正确的是()。 A、接口是一种特殊的类 B、所有接口都是有构造型<>的类 C、一个类可以通过实现接口从而支持接口所指定的行为 D、在程序运行的时候,其他对象不仅需要依赖于此接口,还需要知道该类对接口实现的其他信息 20、下列关于类方法的声明,不正确的是()。 A、方法定义了类所许可的行动 B、从一个类创建的所有对象可以使用同一组属性和方法 C、每个方法应该有一个参数 D、如果在同一个类中定义了类似的操作,则它们的行为应该是类似的 21、UML的系统分析进一步要确立的3个系统模型是()、对象动态模型和系统功能模型。 A、数据模型 B、对象静态模型 C、对象关系模型 D、体系结构模型 22、UML的客户需求分析、系统分析和系统设计阶段产生的模型,其描述图符()。 A、完全相同 B、完全不同 C、不可以通用 D、稍有差异 23、类和对象都有属性,它们的差别是:类描述了属性的类型,而对象的属性必有()。 A、正负号 B、动作 C、具体值 D、私有成员 24、UML系统设计的一般步骤包括系统对象设计、系统体系结构设计和系统设计的()和审查等 A、建模 B、完善 C、优化 D、迭代 25、顺序图和协作图主要用于对用例图中()的建模,用它们来描述用例图的行为。

Java面向对象测试试题(经典)

《使用Java实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。 public class Test{ public void cal(int x, int y, int z) {} } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数

面向对象设计期末练习题

1、在一个商品订货系统的分析中建立了如图所示的关联,它表示一个供货商可能向多个购货商供货,一个购货商也可购买多个供货商的商品。 (1)讨论这种多对多的关联将给实现带来什么问题。 (2)给出一种解决办法,画出修改后的结果。 2、简要介绍OOD 模型的四个组成部分,并讨论它们的作用。 3、在OOD 中为何有时要把多继承化为单继承?对于下图所示的多继承结构,采用整体-部分结构或者采用关联把它化为单继承,画出转化之后的结构。

4、某机械制造厂生产车床、刨床和钻床三种机床和一种起重机。每一种机床和起重机都装配一台电动机,而电动机分为同步电机和异步电机两类。画出一个类图表示以上各种事物以及它们之间的结构关系。 5、举出一个含有多继承的一般-特殊结构的例子,画出其中的每一个类和它们之间的结构连接符,并填写各个类的主要属性与操作。

12、提高性能的改进措施错误的是()。 A.调整对象的分布 B.减少保存中间结果的属性或类 C.合并通信频频的类 D.用聚合关系描述复杂类 1、请你描述项目开发过程中“分析与设计”的两种不同观点。 3、在OOD阶段,若选择Java语言进行编程,针对下面的类图进行调整,给出其中的两种方案。 6、一个银行业务系统采用如图琐事的配置图,则错误的是() A. 与GUI有关的类应该部署在Branch Client上 B. 这个图表示一个三层的体系结构,不管Branch Client、Financial App Server、Database Server是运行在同一台机器上还是在不同机器上 C. 为了系统的可伸缩性(scalability),与业务逻辑有关的对象应该部署在Financial App Server上 D. 为了系统的可伸缩性,与业务逻辑有关的对象应该部署在Branch Client上 15.在数据库设计的阶段开始考虑具体的数据库管理系统(DBMS)的特性。() A. 需求分析 B. 概念设计 C. 逻辑设计.D 物理设计 13、不是人机交互设计准则的是()。 A.易学、易用、操作方便。 B.尽量保持个性化。 C.及时提供有意义的反馈。 D.尽量减少用户的记忆。

面向对象考试题

第五章考试题 一、选择题:(每题3分,共20题) 1.下面关于类的说法错误的一项是()。 A、类属于Java语言中的复合数据类型 B、对象是Java语言 中的基本结构单位 C、类是同种对象的集合和抽象 D、类就是对象 2.如下所示代码: public class Test05_01{ private float a; public static void m ( ){ } } 如何使成员变量a被方法m( )访问()。 A、将private float a改为public float a B、将private float a改为static float a C、将private float a改为protected float a D、将private float a改为float a 3.下面关于类的说法有误的一项是()。 A、类就是对象 B、类是同种对象的集合和 抽象 C、类属于Java语言中的复合数据类型 D、对象是Java语言 中的基本结构单位

4.下列哪种类成员修饰符修饰的变量只能在本类中被访问()。 A、protected B、default C、private D、public 5.下面关于方法的说法不正确的一项是()。 A、类的私有方法不能被其他类直接访问。 B、Java中的构造方法名必须和类名相同。 C、方法体是对方法的实现,包括变量声明和合法语句。 D、如果一个类定义了构造方法,也可以用该类的默认构造方法。 6.下列程序的运行结果是()。 public class Test05_02 extends x{ int ab(){ static int a = 10; a++; System.out.println(a); } public static void main(String[] args) { Test05_02 b = new Test05_02 (); b.ab(); } } A、10 B、编译错误 C、11 D、运行成功,但不输出

java语言与面向对象技术复习资料

一、单项选择题。 1、下列哪个是Java应用程序主类中正确的main方法?() A.public void main(String args[]) B.static void main(String args[]) C.public static void Main(String args[]) D.public static void main(String args[]) 2、下列哪项是正确的float变量的声明?() A.float foo=-1; B.float foo=1.0; C.float foo=2.02f; D.float foo=0x0123; 3、对于int a[]=new int[3];下列哪个叙述是错误的?() A.a.length的值是3。B.a[1]的值是1。 C.a[0]的值是0。D.a[a.length-1]的值等于a[2]的值。 4、下列哪个叙述是正确的?() A.5.0/2+10的结果是double型数据。 B.(int)5.8+1.0的结果是int型数据。 C.’苹’+’果’的结果是char型数据。 D.(short)10+’a’的结果是short型数据。 5、对于下列Hello类,哪个叙述是正确的?() A.Hello类有2个构造方法。 B.Hello类的int Hello()方法是错误的方法。 C.Hello类没有构造方法。 D.Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。class Hello { Hello (int m) { } int Hello() { Return 20; } hello() { } } 6、下列哪个叙述是正确的?() A.成员变量的名字不可以和局部变量的名字相同。 B.方法的参数的名字可以和方法中声明的局部变量的名字相同。 C.成员变量没有默认值。 D.局部变量没有默认值。 7、下列哪个叙述是正确的?()

面向对象程序设计考试题库

面向对象程序设计期末综合练习一(单选题) 单选题 1. C++源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 4. 编写C++程序一般需经过的几个步骤依次是( )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接 5. 以下标识符中不全是保留字的是( )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C++程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为( )。 A. main B. MAIN C. Main D. 任意标识符 8. C++程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C++语言用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( )。 A. 0 B. …0? C. “0” D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 1的表达式是( )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )。 A. 15 B. 26,15 C. 15,26 D. 26

相关文档
最新文档