文档库 最新最全的文档下载
当前位置:文档库 › 面向对象技术与C++A卷2

面向对象技术与C++A卷2

面向对象技术与C++A卷2

命题教师:1.出题用小四号、宋体输入打印, 纸张大小为8K.

考 生:1.不得用红色笔,铅笔答题,不得在试题纸外的其他纸张上答题,否则试卷无效。2.参加同卷考试的学生必须在“备注”栏中填写“同卷”字样。3.考试作弊者,给予留校察看处分;叫他人代考或代他人考试者,双方均给予开除学籍处理。并取消授予学士学位资

格,该科成绩以零分记。

2.Java面向对象知识测试(答案版)解析

面向对象部分测试题 考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面描述函数重写错误的是(c) A. 要有子类继承或实现 B. 子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D. 子类重写接口中的抽象方法,子类的方法权限必须是public的 2.下列说法哪个正确?(a b c) A. 一个程序可以包含多个源文件 B. 一个源文件中只能有一个公共类 C. 一个源文件中可以有多个类 D. 一个源文件只能供一个程序使用

3.下面关于类的设计思路描述错误的是 ( b c ) A. 根据需求写出类所包含的字段(成员变量) B. 根据面向对象的思想要求,所有的字段都必须私有化 C. 封装之后的字段在本类内也必须使用get/set方法 D. 按需求可添加若干构造方法 4.关于封装下面介绍错误的是(d )。 A. 封装将变化隔离 B. 封装提高重用性。 C. 封装提高安全性 D. 只有被private修饰才叫做封装 5.试图编译运行下面的代码会发生什么情况 (d) public class MyClass{ static int i; public static void main(String[] args){ System.out.println(i); } } A. 错误,变量i没有被初始化 B. 输出null C. 输出1 D. 输出0 6.下面对static的描述错误的是 b A. 静态修饰的成员变量和成员方法随着类的加载而加载 B. 静态修饰的成员方法可以访问非静态成员变量 C. 静态修饰的成员可以被整个类对象所共享

完成Java面向对象程序设计实验课的心得体会范文

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

实验三Java面向对象高级编程

实验三Java面向对象高级编程 一、实验目的 1. 掌握Java 面向对象编程技术 2. 能够使用继承创建子类并实现方法覆盖 3. 能够创建异类集合并使用多态 4. 能够创建抽象类和接口,并探究它们的多态特性 二、预备知识 1. JDK的安装设置:JDK/JRE/JVM; 2. Eclipse集成开发环境的绿色安装; 3. 掌握Java语言的面向对象特性(封装性、继承性、多态性); 4. 掌握Java语言的抽象类和接口。 三、实验描述 1. 实验类型:设计 2. 实验学时:4学时 3. 实验容:2项(参照四) 四、实验容 (1) 检查所使用的计算机系统: 1. 确认是否已安装JDK,并确认系统的环境变量设置; 2. 确认是否已绿色安装Eclipse集成开发环境。 (2) 实验容一:使用继承和方法覆盖创建子类,并能够创建异类集合并使用多态 具体要求: 1. 在上述银行项目中,创建Customer类: ·位于包:.mybank.domain中; ·向Customer类添加四个实例变量:firstName,lastName,accounts(Account 对象数组,长度为10)和numberOfAccounts(记录accounts数组索引的一个整数); ·添加一个公有构造方法:两个形式参数firstName,lastname,用于初始化客户、创建accounts数组和初始化accounts数组元素个数numberOfAccounts; ·添加getFirstName方法:该方法返回客户的firstName实例变量; ·添加getLastName方法:该方法返回客户的lastName实例变量; ·添加addAccount方法:该方法有一个形式参数(即Account对象),数组的下标通过实例变量numberOfAccounts实现递增,同时将该参数对象存储在accounts 数组中; ·添加getNumberOfAccounts方法:该方法返回numberOfAccounts实例变量; ·添加getAccount方法:该方法返回与指定的index数组下标相关的对象。 2. 创建SavingsAccount类,该类是Account类的子类: ·位于包:.mybank.domain中; ·向SavingsAccount类中添加interestRate实例变量; ·添加一个有两个参数的公有构造方法:initBalance和interestRate。调用父类构造

面向对象技术引论(复习题)[参考解答]

《面向对象技术引论》复习题 一、概念与术语 1. 对象: 在现实世界中,对象定义为:问题的概念和抽象的或具有明确边界和意义的事物; 在数据世界中,对象定义为:一组数据以及施加于这组数据上的一组操作; 从系统的观点出发,我们可以给对象作如下定义:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位(单元),一个对象是由一组属性和对这组属性进行操作的一组服务构成的。 2.持久对象: 生存期可以超越程序的执行时间而长期存在的对象称为持久对象。换句话说:一个对象在程序运行结束后仍继续存在,则称该对象是持久的。 2.主动对象: 主动对象是一组属性和一组操作(服务)的封装体,其中至少有一个操作不需要接收消息就能主动执行(称为主动服务)。 3.被动对象: 被动对象(Passive object)是指其内部的操作需要通过外部消息驱动才能执行的对象。可以看出被动对象必须工作在消息驱动环境中。 4.类: 定义1 一组具有相同性质(属性和操作)的对象的抽象。 定义2 类是对一组具有相同属性、操作、关系和语义的对象的描述。 定义3 具有相同属性和容许操作的一组对象的一般描述称为类。 5.主动类: 主动类的对象至少拥有一个进程或线程,因此它能够自主执行(能够启动控制活动)。注意:主动类的对象所描述的元素的行为与其他元素的行为并发,这是它与一般类的唯一区别。6.接口: 接口是描述一个类或构件的一个服务的操作集。因此,接口描述元素的外部可见行为。接口描述了一组操作的规格,而不是操作的实现。图形上,用一个带有名称的圆表示接口。7.用况: 用况是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可观察的结果。用况用于对系统语境和系统需求建模。图形上,用一个包含名称的实线椭圆表示用况。 8.协作: 协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的综合。因此协作有结构、行为和维度。图形上,用一个仅包含名称(协作名)的虚线椭圆表示协作。 9.构件: 构件是系统中物理的、可替代的部件,它遵循且提供一组接口的实现。构件是物理的、可替代的部件。 10.节点: 节点也是物理的,是在系统运行时存在的物理元素,它表示了一种可计算的资源,通常至少有一些记忆能力和处理能力。 11.一般类/ 12. 特殊类: 如果类A具有类B的全部属性和服务,而且具有自己特有的某些属性和服务,则类A叫做类B的特殊类,类B叫做的类A的一般类。两者之间的关系称为“泛化”。可以看出一般

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

期末复习试卷(四) 单项选择题 1、关于静态变量的概念,下列哪一个正确 A. 一旦一个静态变量被分配,它的值就不允许改变 . B. 一个静态变量在方法中被创建,它在被调用前保留上一次调用的结果 C. 在任意多个类的实例中,它们共享类定义的静态变量 D. 在任意多个类的实例中,它们各有自己的静态变量 . 正确答案: B 2、选出下面不能作为void Med(i nt 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 in sta nceof Circle)

D. (object in sta nceof 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,输出车辆的最终速度。

面向对象技术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.wendangku.net/doc/4014852524.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.wendangku.net/doc/4014852524.html,pareTo(n2)); 正确写法如下: System.out.println(https://www.wendangku.net/doc/4014852524.html,pareTo((Integer) n2)); 类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。 3、下面哪种类型不是引用数据类型?() A. 数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean

第6章面向对象方法学引论

第6章 面向对象方法学引论 教学提示:本章主要讲述面向对象方法学的优缺点;面向对象的基本概念:对象、类、实例、消息、方法、封装、继承、多态性和重载等;面向对象的软件工程:OOA、OOD、 OOP、OOT;面向对象的建模及对象模型、动态模型、功能模型;面向对象的开发方法。 教学要求:面向对象的基本概念,比较抽象,教学中要注意结合面向对象的高级语言举一些例子来更深刻地领会。本章难点是面向对象的概念及特征和面向对象的模型。掌握面向对象的基本概念及特征,面向对象的建模,面向对象的软件工程。了解面向对象方法学的定义和优点,面向对象的开发方法。 面向对象的软件开发方法在20世纪60年代后期首次提出,经过将近20年这种技术才逐渐得到广泛应用。到了20世纪90年代前半期,面向对象的软件工程方法学已经成为人们在开发软件时首选的范例。今天看来,面向对象技术似乎是最好的软件开发技术 6.1 面向对象方法学概述 面向对象的技术是当前计算机界所关心的重点,是目前软件发展的主流。面向对象的概念来自面向对象的程序设计语言,实际上,面向对象的概念和应用已经超越了程序设计语言,扩展到很宽的范围,如面向对象的数据库系统、面向对象的系统分析与设计、CAD 技术、人工智能以及其他广泛的应用范围。 6.1.1 面向对象方法的发展历程 面向对象的方法的研究正在引起全世界越来越强烈的关注和高度重视,被誉为“研究最新技术的好方法”。针对日趋复杂的软件需求的挑战,软件业界开始崇尚利用面向对象的方法和思想进行软件开发。 与人类发明史上的许多创举不同,面向对象不是瞬间出现的。面向对象不是某个人的突发奇想,而是许多人经历多年研究积累的产物。 面向对象的方法起源于面向对象的程序设计语言。在20世纪60年代中期Simula-67的设计者Dahl和Nygaard 提出对象(object)的概念,在程序设计语言中开始使用数据封装(data encapsulation)的概念。在20世纪70年代,Liskov使用抽象数据类型(ADT)的理论和实现有了重大的进展,奠定了面向对象的基础。Liskov最著名的研究成果是CLU语言,支持隐藏内部数据表示方法。从20世纪70年代起,Xerox公司的 Palo Alto 研究中心经过对Smalltak 72、74连续不断的研究、改革后,在1980年推出了Smalltalk-80,它在系统设计中强调对象概念的统一,引入对象、对象类、方法和实例等概念及术语,采用了动态联编及单继承机制,体现了面向对象方法的许多重要概念,对面向对象方法学的形成和发展起

面向对象技术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,输出车辆的最终速度。

《JAVA面向对象设计》课程标准

《JAVA面向对象设计》课程标准 课程类别:必修课适应专业:软件技术相关专业 课程学时:64节学分:4 一、课程定位 《JAVA面向对象设计》主要讲述了面向对象JAVA程序设计的概念和应用,训练学生掌握面向对象的概念和基本设计方法,掌握JavaSE技术的主要内容和编程方法,是计算机软件专业的一门专业基础骨干课程。 通过本课程的学习,第一部分着重介绍Java编程的基本内容。主要有java的基本环境、java语言基础、java工程规范、基本特征、数据类型、流程控制、数组、函数、异常等,通过这部分的学习可以用java语言完成简单编程逻辑的程序编写;第二部分,着重学习JavaSE类库的应用。主要包括输入/输出、java多线程、容器类、网络通信、java界面编程、事件监听与响应、Java数据库编程等;第三部分,着重介绍Java面向对象的概念和编程。包括类和对象、封装、继承、多态、抽象类、接口、设计模式的概念和使用方法,通过这部分学习,建立面向对象程序设计的概念和应用的基本认识。 通过本课程的学习,能够训练学生编程逻辑,了解面向对象的概念和基本实现方法,掌握JAVASE技术的主要内容,为后续的《JAVA EE程序设计》《移动互联网程序设计》等课程打下坚实的基础。 二、课程目标 本课程目标分为知识目标(即学生应该掌握的基本理论和基本方法)、总体能力目标(即学生学习完本课程后应该达到的职业技能)。 本课程知识目标: 1)掌握JAVA语言中数据类型与表达式,语句控制和数组的概念及用法。 2)掌握异常的概念、分类和异常处理编程,自定义异常的实现。 3)熟悉Java常用工具类的使用(字符串类、系统类、时间类、格式化类等)4)掌握线程的概念、意义,创建方法、调度方法、同步机制、线程通信的概

java面向对象知识点总结

j a v a面向对象知识点总 结 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1 类和对象 类: 类是用来描述一类事物的共性内容的, 类是抽象的; 创建类,如何描述 属性功能 用变量来描述属性 用方法来描述功能 对象: 就是现实中具体的事物,对象是具体的; 创建对象 类名对象名 = new 类名(); 如何通过对象访问类中属性和方法呢 对象名.变量名 对象名.方法名(); 只要是new的对象,就是新创建的,就会在内存中开辟一段单独的空间匿名对象 创建的对象没有赋值给具体的变量; 所以给匿名对象的属性赋值是没有任何意义的; 匿名对象使用场景

1 调用方法 2 作为参数传递 3 添加进容器中 This 关键字 This. 类中的普通方法访问到的成员前边都有this.这个关键字This. 就代表当前对象, 普通方法, 创建对象调方法, 谁调用就代表谁 This(); 可以用来在构造函数中调用本类与之相对应的构造函数使用注意事项: 1 this() 只能是构造函数的第一条执行语句 2 this() 不能在构造函数之间相互调用 3 this() 不能调用自己 构造函数(方法) 构造函数的作用 用来给对象进行初始话的(初始化就是指给对象的各个属性赋值) 构造函数何时执行 对象一创建就会调用与之相对应的构造函数

构造函数语法 修饰符没有返回值类型类名(参数列表){ 具体执行的代码 } 构造函数自动添加 当一个类中我们没有明确指定构造函数的话,jvm会自动帮我们添加一个空参数的构造, 如果我们指定了,就不添加了 构造函数和普通函数的区别 执行时机不同 对象一创建就会调用与之相对应的构造函数 普通函数只有被调用才会执行 return 1 就是用来在方法中返回具体结果(结果类型必须和方法的返回值类型一致) 2 即便方法的返回值类型是void,方法中也可以出现 return; 3 构造函数中也可以有return关键字 成员变量和局部变量 1 作用范围不同, 成员变量是定义在类中的,在整个类中都起作用 局部变量是定义在方法中的,在所在代码块起作用

《面向对象技术与方法》试卷

一、单选题(本大题共22个小题,每小题2分,共44分) 第1题.javac的作用是: A)将源程序编译成字节码B)将字节码编译成源程序 C)解释执行Java字节码D)调试Java代码 答案:A 第2题.下列程序片断的执行,说法正确的是 1 public class test 2 { 3 public static void main(String args[]) 4 { 5 byte b=100; 6 int i=b; 7 int a=2000; 8 b=a; 9 System.out.println(b); 10 } 11 } A)b的值为100 B)b的值为2000 C)第六行出错D)第八行出错 答案: D 第3题.下列数组定义及赋值,错误的是 A)int intArray[]; B)intArray=new int[3]; intArray[1]=1; intArray[2]=2; intArray[3]=3; C)int a[]={1,2,3,4,5}; D)int[][]=new int[2][]; a[0]=new int[3]; a[1]=new int[3]; 答案: B 第4题.类ABC定义如下: 1.public class ABC{ 2.public int max( int a, int b) { } 3. 4.} 将以下哪个方法插入行3是不合法的。 A)public float max(float a, float b, float c){ } B)public int max (int c, int d){ } C)public float max(float a, float b){ } D)private int max(int a, int b, int c){ } 答案: B 第5题.下列说法正确的是_____ A)java中包的主要作用是实现跨平台功能 B)package语句只能放在import语句后面 C)包(package)由一组类(class)和接口(interface)组成 D)可以用#include关键词来标明来自其它包中的类; 答案: C 第6题.以下哪个接口的定义是正确的? A)interface B{ void print() { } ;} B)abstract interface B{ void print() ;}

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语句:()

OOP技术:面向对象技术1-10章习题

OOP技术:习题 第1章习题 1. 什么是面向对象技术? 2. 面向对象与面向过程程序设计有什么不同? 3. 面向对象技术有哪些优点? 4. 面向对象技术中的封装性有何优缺点?如何克服这些缺点? 5. 为什么要应用继承机制? 6. C++对多态性的支持体现在哪些方面? 7. 目前常用的面向对象程序设计语言有何异同? 8. 什么是.NET? 第2章习题 1. 写出下面程序的运行结果。 #include void main() { int* a; int* &p=a; int b=10; p=&b; cout<<*a< void main() { int iarray[10]={0,2,4,6,8,10,12,14,16,18}; int sum=0; int* iptr=iarray; for(int i=0;i<10;i++) { sum+=*iptr; iptr++; } cout<<"sum is"<

} 3. 写出下面程序的运行结果。 #include int m=8; int add3(int x,int y=7,int z=m) { return x+y+z; } void main() { int a=1,b=2,c=3; cout<

《Java面向对象程序设计》(第2版)课后答案

Java面向对象程序设计 (编著耿祥义张跃平) 习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用Java解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7. D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.wendangku.net/doc/4014852524.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.wendangku.net/doc/4014852524.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.wendangku.net/doc/4014852524.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。 习题2 1. D 2.【代码1】【代码2】错误//【代码3】更正为float z=6.89F; 3.float型常量后面必须要有后缀“f”或“F”。 对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。4.public class Xiti4{ public static void main (String args[ ]){ char ch1='你',ch2='我',ch3='他'; System.out.println("\""+ch1+"\"的位置:"+(int)ch1); System.out.println("\""+ch2+"\"的位置:"+(int)ch2); System.out.println("\""+ch3+"\"的位置:"+(int)ch3); } } 5.数组名字.length 6.数组名字.length 7.【代码1】A,65 【代码2】-127

面向对象技术UML 样题一 参考答案

一、填空题:(共20分,每题2分) 1.○H、H* 2.关联 3.关联 4.构建 5.类 6.抽象 7.概念 8.可见性、公开的、私有的、保护的 9.活动,整个工作流程的某个部分的职责 10.脚本 二、判断题,请将正确答案填入对应题号的表格内:(共10分,每题1分) 四、名词解释:(每题5分,共20分) 1.关联(Association):描述了给定类的单独对象之间语义上的连接。关联提供了不同类间对 象可以相互作用的连接。 2.抽象类(Abstract Class):抽象类是包含一种或多种抽象方法的类,它本身不需要构造实例。 定义抽象类后,其它类可以对它进行扩充并且通过实现其中的抽象方法,使抽象类具体化。 3.分支(Branch):在活动图中,对于同一个触发事件,可以根据不同的警戒条件转向不同的 活动,每个可能的转移是一个分支。 4.参与者(Actor):)在系统之外与系统交互的某种人或者或种事物 五、简答题(每题10分,共30分) 1.关联限定符有什么作用?试举例进行说明。 参考答案: 在类图中关联端靠源类图标处可以有限定符,带有限定符的关系称为限定关联。限定符的作用就是在给定关联的一端的一个对象和限定符值以后,可以确定另一端的一个对象或对象集。这样可以将多重性从n降为1或0..1,从而简化关联复杂性。 如:银行与存款人之间本来是1对多的关系,通过增加一个“帐号”作为关联限定符,可以在给定银行帐号的情况下确定存款人情况。 评分标准: 说明关联限定符的概念及其作用计6分 列举的例子能够说明关联限定符作用计4分 2.什么是聚集关系,什么是组合关系?两者之间有什么异同点?各举一例说明。

面向对象技术引论(复习题带术语题答案)

一、概念与术语 1. 对象:(1)从现实世界:问题的概念和抽象的或具 有明确边界和意义的事物 (2)从数据世界:一组数据以施加在这组数据上的一组操作 (3)从系统观点:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,一个对象是由一组属性和对整个属性进行操作的一 组服务构成的。(P19) 2.持久对象:生存期可以超越程序的执行时间而长 期存在的对象。(P24) 2.主动对象(3种解释):(1)一个能够启动消息传 递的对象。(2)一个能为其他对象提供服务的对象,能被拷贝成代理,并且需要并发控制。(3)其方法(操 作)由自身状态的改变而激活。(P25) 3.被动对象:其内部的操作需要通过外部消息驱动 才能执行的对象。(P25) 4. 类:一组具有相同性质(属性和操作)的对象的 抽象。(P20) 5. 主动类:主动类的对象至少拥有一个进程或线程, 因此它能够自主执行(P65) 6. 接口:描述一个类或构件的一个服务的操作集 (P64) 7. 用况:用况是对业务过程所包含的一组动作序列的 描述,系统执行这些动作将产生一个对特定的参与者 有价值且可观察的结果。(P42) 8. 协作:协作定义了一个交互,它是由一组共同工作 以提供某协作行为的角色和其他元素构成的一个群 体,这些协作行为大于所有元素的各自行为的综合 (P64) 9. 构件:构件是系统中物理的、可替代的部件,它遵 循且提供一组接口的实现。(P65) 10. 节点:节点也是物理的,是在系统运行时存在的 物理元素,它表示了一种可计算的资源,通常至少有 一些记忆能力和处理能力。(P65) 11. 一般类和12. 特殊类:如果类A具有类B的全部 属性和服务(操作),而且具有自己特有的某些属性 和服务,则类A叫做类B的特殊类,B叫做A的一 般类。(P22) 13. 关联(关系):事物(类)之间的一种结构关系, 或者说是对象之间连接的抽象,用来描述对象之间的 相互作用(P67) 14. 关联类:关联类是一种具有关联特性和类特性的 建模元素,可以将其看出是具有类特性的关联,或者 具有管理特征的类(P116) 15. 依赖(关系):依赖是两个事物之间的一种语义关 系,其中的一个事物的改变会影响另一个事物,反之 未必(P106) 16. 泛化(关系):泛化是一种“特殊/一般”关系, 即特殊事物和一般事物之间的关系。(P108) 17. 实现(关系):类元之间的语义关系(P16) 18. 链和链属性:对象之间的关联或相互作用表现出 不同的类的对象的实例之间的实际的或概念上的联 系,称为链。链属性:??(P110) 19. 聚合:聚合用来表示事物时间的“整体/部分”关 系,“整体”事物是一个较大的事物,它是由多个” 部分“事物组成的。(P113-114) 20. 问题域:是指特定应用系统的应用领域,即在现 实世界中由该系统进行处理的业务范围。(P47) 21. 系统责任:指系统应该具备的职能。(P47) 22. 消息:消息定义为向对象发出的服务请求(P23 和P127) 23. 交互:交互是发生在对象之间后对象内部的消息 传递行为(P66) 24. 事件:一个触发行为成为一个事件,换句话说, 所谓事件是指特定时刻内发生的动作。(P139) 25. 事件流:(P84) 26. 状态:指在对象的生命期中的一个条件或状况(通 过属性值体现),在此期间,对象将满足某些条件、 执行某些活动或等待某些事件。(p141) 27. 状态机:状态机描述了一个对象或一个交互在生 命期内响应事件所经历的状态序列,即描述其状态变 迁。(P66) 28.封装:封装是对拥有结构和行为的一个对象的元 素进行划分的过程,封装完成抽象的契约接口和对象 实施的分离(P28) 29. 继承:特殊类拥有一般类的全部属性和服务(操 作),称为特殊类对一般类的继承(P29) 30 多态:在一般类中定义的属性被特殊类继承之后, 可以具有不同的数据类型;同理,一般类中定义的操 作,可以在特殊类中具有不同的实现方法。(P31) 31. 抽象:抽象即指通过思考进行分离的行为。另一 种解释:表示某事物的本质特征(P27) 32. 角色:当一个类位于关联的某一端时,该类(的 某些实例)就在这个关系中扮演了特定的角色。(这 个算??)(P111) 33. 限定词(修饰关联):限定词是关联的一个特定的 属性,它的值划分了一个关联与一个对象相关的对象 集。(p116) 34. UML的规则(命名、范围、可见性、完整性、执 行):P70-P71太多了~不想打~ 35. UML的公共机制(详述、修饰、通用划分、扩展 机制(构造型、标记值、约束)) 36.OOPL:面向对象的编程语言,OOD:面向对象设 计范式,OOA:面向对象分析方法 37.准则包括标准与原则,模块化设计的标准包括:可 分解性、组合性、可理解性、连续性、保护性;设计 上应遵循的原则为:语言模块单元、接口很少、小接 口、显示接口、信息隐蔽等。 38.面向对象的四个基本要素:面向对象系统是由对象 组成的、组成系统的对象抽象成类、类之间存在泛化 关系,此种关系支持继承、对象之间通过消息获取对 方的服务。 39.应用开发过程六个阶段:需求描述、分析、设计、 实现、测试、维护。 40.UML对软件密集型系统的制品进行下述工作:可 视化、详述、构造、文档化。 41.UML三大建模元素:事物、关系、图,事物分为: 结构事物、行为事物、分组事物、注释事物,结构事 物分为:类、接口、协作、用况、主动类、构件、节 点。 42.提交一个应用系统的过程包括:计划和细化、构造、 实施。 二、思考题 1.为什么应用对象技术可以改变软件制造(生产) 方式? 由人工集约方式改变成资源集约方式,由重复性 的编程劳动变成基于组件的系统组装,从而带来软件生产 效率的大幅度提高。 2.试述建模的重要性,为什么建模可以降低系统实 现的复杂度。 建模是开发优秀软件所有活动的核心部分,其目 的是把所要设计的结构和系统的行为沟通起来,并对系统 的体系结构进行可视化和控制。建模是为了更好的理解正 在构造的系统,并经常提供简化和复用的机会。建模还可 以管理风险。一个成功的软件组织有很多成功的因素,其 中共同的一点就是对建模的采用。 模型可以提高系统的可测试性。提高可交流性。 增强开发过程的可视性,使得分析和设计思路、设计过程 可视化。降低实现的复杂度。 通过将复杂系统的重要部分分解成一次能理解 与处理的多个子部分,可以降低实现的复杂性。人对复杂 问题的理解能力是有限的,通过建模,缩小所研究问题的 范围,一次只着重研究它的一个方面,这就是所谓的“分 而治之”“各个击破”。 3.为什么面向对象方法能较好地管理复杂性并增强 伸缩性。 管理复杂性的一个好办法就是“分而治之”。“分” 就是对应用领域的分解,面向对象方法强调以客观世界的 事物为基础,把某一领域分割成各种对象,这显然比自顶 向下进行功能分解更自然、合理。“治”的基本方法就是: 采用封装技术对被分割的事物进行包装,以简化接口、减 少事物之间不必要的联系。利用事物之间的泛化管子构造 继承机制以获得重用。可用性和可扩展性意味着复杂系统 可以由简单系统组合而成,并且复杂系统可以采用“迭代” 方式,逐步增量形成。基于对象的分块技术也有助于解决 过程的伸缩性问题。 4.何谓“软件复用”,为什么说面向对象技术对“软 件复用”提供了卓有成效的支持? 软件重用是将已有软件的各种有关知识用于建 立新的软件,以缩减软件开发和维护的花费。包括分析模 型、设计模型、代码以及测试用例、测试信息等等的复用。 面向对象技术使软件重用技术更加完善和规范, 对象的重要特性。:抽象、封装、继承和多态都从不同角 度支持软件重用:抽象使得对象组件更具一般化,也即充 分考虑到对象自身的性质、性能和应用环境的复杂性等多 方面的要求,以此获得通用化和标准化方面的保证。封装 允许开发人员将对象视为“黑匣子”,只需通过界面去理 解、引用和操作对象,而不必关心其实现细节。继承使得 基于类的抽象层次和泛化结构的代码重用成为可能,也即 通过泛化关系使得特殊类可以共享一般类的性质。 5.“用况驱动的、迭代式的、增量”的开发方法的要 点、优点、时间盒。 要点:①软件开发过程要经历若干个开发周期, 每个周期都包含:分析、设计、实现和测试等活动。②在 经过一个初步的计划和细化阶段后,开发进入由一系列开 发周期组成的系统构造阶段,所以迭代主要发生在构造阶 段,当然也包含部分实施,因此严格讲,构造发生在构造 及实施阶段。③在每个开发周期中,通过增加新的功能使 系统得以扩充。④每个开发周期只针对比较小的一部分需 求,它要经历分析、设计、实现和测试等活动。每个开发 周期完成后,系统都获得一定程度的扩充。开发周期一般 是以用况为单位组织的。 优点:①因为每个开发周期只针对比较小的一部 分需求,所以就可以比较好的解决由于一个开发过程太庞 大、复杂使得开发人员无从下手的问题,也即能够比较有 效地管理复杂性。②因为每个开发周期只快速实现系统的 一小部分,所以在开发过程的早期就能够获得反馈信息。 用户的反馈信息越早越好,尽早听到和采纳用户的意见, 可以少犯错误。 时间盒即给开发周期限定时间,开发周期中的所 用工作都必须在这个时间内完成。 6.“计划和细化”阶段的主要工作和主要活动。 主要工作:初期概念的形成、为做出各种项 目选择所进行的调查研究、需求的规格化描述等。主 要活动:定义计划草案、编制初步调查报告、定义需 求、在术语表中记录术语、实现原型、定义用况、定 义概念模型草案、定义系统结构草案、精华计划。 7.“构造阶段”的主要工作和主要活动。 构造阶段包括一系列重复的开发周期,每个 开发周期主要工作:精华计划、同步制品、分析、设 计、实现、测试等。在这些开发周期中,系统得到了 扩展和完善。构造阶段的最终目标是得到一个能正确 符合需求的软件系统。 8.何谓链属性,试述链属性不应置入关联两端的某 一对象类中作为其属性的理由,请举例说明之。 由于关联特性与存在关联关系的两个类有 关,因此建模时经常会将这些属性随意地置入某一个 类中,当成类的属性。关联的特性是与被关联的两个 或多个类有关的那些属性,这些属性不是从属于单个 类的,因而不应该随意置入某个类中。 9.系统分析阶段如何识别类和排除虚假类?(分别 简述语法分析法和现实分析法的要点)。 现实分析法:确定问题陈述所涉及的哪些活动是 与需求密切相关的,分析这些活动涉及到哪些具体的事 物、概念、过程,遵循哪些规则等,它们都可能是系统内 部的对象类。 语法分析发:在问题陈述中,对象类通常对应于 名词或名词词组,因此从问题陈述中找出所有的名词或名 词词组,就得到大多数的候选类,运用排除法可以排除虚 假的类,就获得确定的类组。 虚假类:冗余类、无关类、模糊类、属性、操作、 角色、实现结构。 10.简述描述类的基本特征(名称、属性等)并举例 说明之。 名称:一个字符串;属性:已被命名的类的 特性;操作:一个服务的实现,该服务可以由类的任 何对象,甚至其他类的对象所请求,以影响其行为; 职责:类的契约或责任。 11.为什么“继承”可以简化对问题的认识? 这是因为在分析问题时,运用继承手段至少 可以从数量上减少必须理解和分析的不同情况。 12.列举引起需求变化的主要因素,面向对象方法如 何应对需求的不断变化? 问题域本身在系统开发过程中发生变化、用户因 素、竞争因素、经费因素、技术支持。 冻结需求法、以系统中最稳定的部分作为系统的基本单位 (对象)。 13. 简述软件维护的主要工作,并说明其重要性。 主要工作:对系统潜在的错误进行检测和改 正;不断地面对用户的新要求以及为适应新环境对系 统进行改进与增强。

相关文档
相关文档 最新文档