Java面向对象模拟试题1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、判断题(正确的描述打钩,错误的打叉,每题1分,共10分)
1 抽象类中不可以有非抽象的方法。(错)
2 如果将一个对象强制类型转换为一个不兼容的类型,将引发NullPointerException
异常。(错)
3 Java中Object类是最顶层的类。(对)
4 程序在编译通过以后,仍然可能出现运行时错误和逻辑错误。(对)
5 可以通过javac来运行一个Java Application。(错)
6 可以在子类构造函数中通过this关键字调用基类的构造函数。(错)
7 Java语言是IBM公司设计的一种面向对象程序设计语言。(错)
8 一个Unicode字符占4个字节。(错)
9 在循环语句中,使用continue;语句可以跳出循环。(错)
10 在Java Application中如果没有定义main()方法,则程序不能编译。(错)
二、简答题(请将答案写到答题纸上,注明题号。每题3分,共30分)
1 请看以下代码:
package mytest;
public class Main {
public static void main(String[] args) {
A());
}
}
class A
{
}
Java在运行上述代码时输出一个很奇异的结果:
@60aeb0
尝试解释一下可能的原因.
点评:
本题的关键在于虽然类A没有定义任何方法,但它隐含着从基类Object中继承了toString()方法。答案必须点出这一结果是执行toString()方法得到的。
2 什么叫多态你是如何理解多态的请设计一个简单的示例,展示多态的用法。
点评:
几乎所有的Java教材都要介绍多态的概念,但只有能用自己的语言说清楚,并能自己设计一个典型实例展示多态特性的,才算是真正弄明白了。
从试卷中发现,不少同学弄混了方法重载与方法覆盖,认为“方法重载”就是多态。
3 在Java GUI程序中,布局管理器是一个很重要的概念。谈谈你对这个概念的理解,并进而回答以下问题:
如果要你开发出一个Windows资源管理器(图 1),你将如何应用合适的“布局管理器”来实现其界面
图 1 Windows 7中的资源管理器
请指明你在图 1中的哪部分应用哪种布局管理器。
4 int和Integer都可以代表一个整数,这两者在使用上有什么区别吗为什么JDK中要设计两个数据类型来表示同一种数据
5 Java Application的程序入口点为main()函数,其声明如下:
public static void main (String[] args)
请解释一下为何main()函数是公有的和静态的
6 抽象类与接口都不能直接用来创建对象,那么,这两者什么用彼此之间又有何区别
你认为在哪种场合应该用抽象类,哪种场合应该用接口在JDK中你能找到相应的实例吗如果能找得到,请分析一下JDK的设计者为何将它们设计为“抽象类(或接口)”。
7 如何判断函数构成重载关系挑出以下函数中不构成重载关系的函数,指明它违反了哪个判断准则。
(1)void myFunc();
(2)int myFunc(int x,int y);
(3)int myFunc(string str, string str2);
(4)string myFunc(int x, int y);
另外,你还记得JDK中有哪个类拥有重载的方法吗列举一两个。
8 Swing和AWT都可以用于设计GUI(图形用户界面)程序,这两者有何区别
你还用过其他的编程语言或开发工具设计GUI程序吗如果让它们与Java进行对比,你觉得使用Java设计GUI程序的优点在哪,缺点在哪
9 在面向对象程序中,实现代码复用主要有两种方式:继承和组合。
请设计两段示例代码,分别展示出Java实现这两种方式的代码框架。
如果在某个实际开发场景中这两种方式都可用,你认为应该优先选择哪一种原因
10 各种类型的几何图形都有自己的面积计算公式,但在一个CAD(计算机辅助设计)软件中,图形的种类非常多,如果程序需要计算出任何一种图形的面积,最简单的想法是使用条件判断语句根据图形类型来选择相应的计算公式。然而,这种方法不太好,可能会导致嵌套层次很深的条件判断语句。另外,如
果软件要扩充功能以支持新的图形种类,则又不得不修改调用不同公式计算图形面积的代码。
在学习了面向对象技术之后,你能对上述问题给出一个较好解决方案来吗
请以计算圆形、矩形和三角形三种几何图形的面积为例,列出关键代码或者绘出UML图来展示你的方案。
三阅读程序题(每题3分,共12分)
说明:
请仔细阅读左栏的程序代码,将程序运行结果写在“运行结果”一栏。
程序一
public class Test {
public static void main (String[] args) {
String s1=new String("Hello");
String s2="Hello";
String s3="Hello";
String s4=s1;
}
}
运行结果
false
true
true
true
true
true
程序二
public class Test {
private static void printArray(int[] arr) {
for(int i=0;i< ;i++)
",");
"\n");
}
private static void changeValue(int value) {
value*=2;
}
private static void changeValue(int[] arr) {
for(int i=0;i<;i++)
arr[i]*=2;
}
public static void main (String[] args) { int[] arr={1,2,3,4,5};
changeValue(arr[0]);
printArray(arr);
changeValue(arr);
printArray(arr);
}
}