JAVA 面向对象程序设计复习试题+解析
1) 在 JAVA 编程中,关于 Font 下列()是正确的。(选择两项)
a) 在我们的程序中可以使用 Font 类中定义的字体常量。
b) 我们可以使用 Tookit 类中的函数来获取我们的机器中 java 所支持的字体的列表
c) 我们可以自己创建字体实例对象
d) 以上说明都正确
【解析】参考答案:A B
Font 属于 java.awt 包中的一个类,专门用来设置程序中的字体实例对象。
创建 Font 类的对象时使用的方法:getFont(int face,int style,int size);
例如:Font font = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.
SIZE_MEDIUM);
无论哪一个参数,都只能使用系统设置的数值,这些数值具体的大小在不同的手机上
可能不同。下面对于其中的三个参数的取值做详细的介绍:
face 参数指字体的外观;style 参数指字体的样式;size 参数指字体的大小 。这三个
参数都是系统中定义好的一些常量。
获得系统的默认字体:Font font = Font.getDefaultFont();
ToolKit 类是 Abstract Window Toolkit 的所有实际实现的抽象父类。
Toolkit 用于把各种组件绑定到特定的本地工具箱实现上。
该类有个方法 getFontList()
用于返回该工具箱中可用字体名。 也就是可以获取机器中 java 所支持的字
体的列表。
2) 在 Java 语言中,在包 Package1 中包含包 Package2,类 Class_A 直接隶属于包 Package1,
类 Class_B 直接隶属于包 Package2。在类 Class_C 要应用 Class_A 的方法 A 和 Class_B
的方法 B,你需要()语句。(选择两项)
a) import Package1.*;
b) import Package1.Package2.*;
c) import Package2.*
d) import Package2.Package1.*;
【解析】A B
Java 语言中的包机制就像 Windows 中的文件夹,用来归类 类文件的位置。
要使用包中的类,有如下二种方法:
直接导入该包中要用到的类。例如要用到 Color 类,可以
import
java.awt.Color
干脆将包中所有的类直接导入。但此时如果包有嵌套的包,不能将嵌套
包中的类倒入。
Import java.awt.*
本题包的关系如下:
Package1 包嵌套包 Package2
Class_A
Class_B
掌握了这二条,要在类 Class_C 要应用 Class_A 的方法 A 和 Class_B 的方法
B。也就是要在 Class_C 中导入 Class_A 和 Class_B。方法如下:
import Package1.*
import Package1.Package2.* //可以导入 Class_B
//可以导入 Class_A
3) import java.awt.*;
import java.applet.*;
public class ButtonDemo extends Applet {
Public void init()
{
Button pushBotton=new Button(“ok”);
Button downButton=new Button(“Yes”);
add(pushBotton);
add(downBotton);}
}
根据以上代码,下列解释正确的是()。(选择两项)
a) 该代码画了一个按钮
b) Button(“ok”)创建一个有显示“ok”的按钮
c) Button()是构造函数
d) 按钮属于容器
Button 是一个 GUI 组件,并不是容器。因为它里面不能再放其他组件。
【解析】B C
要创建按钮,可以使用 Button 类创建。
Button pushBotton=new Button(“ok”)
其中 pushBotton 是按钮实例对象名,Button()是构造方法,初始化该按钮,
此处带有参数 ok,表示该按钮所显示的文本为 OK。等价于 setText 方法的作用。
此代码中的 add 方法是将按钮添加到容器。但此时该按钮并没有显示出来,因为
还没有实现画按钮。
【解析】
4) 在 JAVA 编程中,关于 Graphics,下面()是正确的。(选择一项)
a) 在这个类中定义了一些基本的绘图方法
b) 这个类还存在一些不足,因此出现了 Graphics2D 类,弥补了这个类的某些不足
c) 这个类是一个抽象类,我们不能创建这个类的实例
d) 以上说法都正确
【解析】D
类 java.awt.Graphics,
定义:public abstract class Graphics extends Object
Graphics 类是所有图形上下文的抽象基类,该类包含了一些基本的绘图
方法。这个上下文允许应用将图形绘制到由不同设备实现的组件上,以及绘制到
空闲屏幕的映像中。
由于 Graphics 是一个抽象类,应用不能直接调用该构造函数。图形上下
文是从其他图形上下文获得的或是通过在一个组件上调用 getGraphics 创建的。
例如使用如下这二个方法:
create, getGraphics
针对该类的一些缺点,出现了 Graphics2D 类,利用 java.awt.Graphics2D 类可以绘
制各种图形,矩形,圆,二次曲线,饼形以及它们的填充图形等-,Java,2D 图形编程/2D Graphic。
5) 在 JAVA 编程中,将鼠标放在按钮上以后,用鼠标单击按钮,将会发生鼠标事件和组件
激活事件,就鼠标事件而言,将调用()个监听器方法。(选择一项)
a) 1
b) 2
c) 3
d) 4
【解析】B
鼠标事件在单击按钮时实际包含了二个事件:
鼠标压下 和 鼠标 弹起
在 Java 的事件机制中,每个事件都必须有一个事件监听者。故选 B
6) JAVA 中,为了辨别用户关闭窗口的时间,要实现监听器接口()。(选择一项)
a) MouseListener
b) ActionLisener
c) WindowListener
d) 以上都要
【解析】D
在 Java 程序中这一般是通过 实现适当的事件监听者接口来完成的。比如如
果需要响应按钮事件,就需要实现 ActionListener 监听者接口;如果需要响应窗
口事件,就需要实现 WindowListener 监听者接口。此处当用鼠标点击关闭时,
会产生一个 MouseEvent,此类需要实现 MouseListener 接口。故本题选 D
7) 在 Java 语言中,如果你有下面的类定义:
abstract class Shape {
abstract void draw();
}
class Square extends Shape{}
如果你试图编译上面的代码会发生()。(选择一项)
a) 一切成功编译
b) Shape 可以编译 Square 不能编译
c) Square 可以编译 Shape 不能编译
d) Shape.Square 都不能编译
【解析】D
由于 Square 类没有实现父类 Shape 的方法 draw,从而导致这二个类都不能编
译。
8) 对于布局管理器解释正确的有()。(选择两项)
a) FlowLayout 以由上到下的方式从左到右排列组件
b) BorderLayout 使用“东”、“西”、“南“、“北”、“居中”来指定组件的位置
c) GridLayout 提供了类似于选项卡式的对话框的功能
d) CardLayout 是最灵活的布局方案
【解析】 B D
Java 中的布局方式:
BorderLayout 边界布局方式 :使用“东”、“西”、“南“、“北”、“居中”来指
定组件的位置
FlowLayout 流式(顺序)布局:按照从左到右由上到下的方式排列组件。
GridLayout 网格布局。把组件按照网格来放置。
CardLayout 卡片布局。 对象是容器的布局管理器。它将容器中的每个组件
当作一个卡片来处理。在某 一时间,只有一个卡片是可见的,容器象一个卡片
堆栈一样工作。 ... CardLayout 定义了 一系列方法,来允许一个应用顺序地翻
动这些卡片,或显示一个指定的卡片。是最灵活的布局方案。
9) int[] my_Array;
my_Array=new int[5];
for(int count=0;count<=5;count++)
System.out.println(my_Array[count]);
以上 Java 代码运行的结果是()。(选择一项)
a) 将 1,2,3,4,5 输出到屏幕
b) 将 0,1,2,3,4 输出到屏幕
c) 将 0,1,2,3,4,5 输出到屏幕
d) 将出现运行时异常
【解析】D
数组 my_Array 包含 5 个元素,元素的索引从 0 到 4;而在 for 循环体中
出现了当 count=5 时,会超出索引边界;故 my_Array[5]会产生异常。
10) 下面描述()是正确的。(选择两项)
a) Java 的源程序必须以”.java”或”.jav”扩展名保存
b) Java VM 可以是软件也可以是硬件
c) Java 使用解释器执行代码
d) 用高级语言编写的代码可以让计算机理解并执行它们
【解析】B C
Java 的源程序必须以”.java”结尾。
高级语言编写的程序必须经过编译或解释为低级语言;也即要翻译为计算
机可以理解的机器语言。
Java VM(虚拟机)可以是软件也可以是硬件。
Java 使用解释器执行代码。
11) 在 JAVA 编程中,基于线程的多任务处理环境中,执行特定任务的可执行代码的最小单
位是()。(选择一项)
a) 进程
b) 线程
c) 应用程序
d) 服务
【解析】B
进程是由一个或多个线程组成,进程中可执行代码的最小单位就是线程。
12) 下列选项中,属于 Java 语言的关键字的是()。(选择两项)
a) goto
b) malloc
c) extends
d) FALSE
【解析】 A C
先做下面几个题目:
1, which of the following are keywords or reserved words in java ?
a) if b)then c)goto d)while e)case f)sizeof
2, which of the following are java key words ?
a)double b)Switch c)then d)instanceof
3, which of these are key words in java ?
a) default b)NULL c)String d)throws e)long f)true
答案: 1,acde 2,ad 3,adef 作对了吗^_^
解释来了:
1,then 和 sizeof 都不是 java 的关键字,熟悉 c 或者 c++,写惯了 asp 的高手就要小
心喽。
2,所有的关键字都是小写的,所以 Switch 不是关键字。instanceof 看上去像方法名,
但其实是关键字;
3,大写的 NULL 不是 java 语言的关键字。String 是 java 语言的一个封装类的类名,也
不是关键字。
再来点系统的:
正确识别 java 语言的关键字(keyword)和保留字(reserved word)是十分重
要的。Java 的关键字对 java 的编译器有特殊的意义,他们用来表示一种数据类
型,或者表示程序的结构等。保留字是为 java 预留的关键字,他们虽然现在没
有作为关键字,但在以后的升级版本中有可能作为关键字。
关键字列表
abstract boolean break byte case
catch char class continue default
do double else extends false
final finally float for if
implements import instanceof int interface
long native new null package
private protected public return short
static super switch synchronized this
throw throws transient true try
void volatile while
保留字
const,goto
注意点:
识别 java 语言的关键字,不要和其他语言如 c/c++的关键字混淆。
const 和 goto 是 java 的保留字。
所有的关键字都是小写
friendly,sizeof 不是 java 的关键字
13) 在 JAVA 语言中,Panel 默认的布局管理器是()。(选择一项)
a) Borderlayout
b) FlowLayout
c) GridLayout
d) GridBagLayout
【解析】A
常见的几种布局:
BorderLayout 边界布局方式 :使用“东”、“西”、“南“、“北”、“居中”来指
定组件的位置.为默认的布局管理器。
FlowLayout 流式(顺序)布局:按照从左到右由上到下的方式排列组件。
GridLayout 网格布局。把组件按照网格来放置。
14) 在 JAVA 语言中,使我们能够使用和更改字体来显示或键入文本的类是()。(选择一项)
a) Java.awt .Font
b) Java.awt.Graphics.Font
c) Java.Graphics.Font
d) Java.Font
【解析】A
Font 类位于 java.awt 包中。
15) 在 Java 中,关键字()使类不能派生出子类。(选择一项)
a) final
b) public
c) private
d) volatile
e) native
【解析】A
在类的前面加了 final 关键字,说明该类是一个最终的类,当然也就不能被
别人继承,也就不能派生出子类了。
16) 在 JAVA 编程中,Swing 包中的组件处理事件时,下面()是正确的。(选择一项)
a) Swing 包中的组件也是采用事件的授权处理模型来处理事件的
b) Swing 包中的组件产生的事件类型,也都带有一个 J 字母,如:JMouseEvent
c) Swing 包中的组件也可以采用事件的传递处理机制
d) Swing 包中的组件所对应的事件适配器也是带有 J 字母的,如:JMouseAdapter
【解析】A
Swing 是 由 100% 纯 Java 实 现 的 ,Swing 组 件 是 用 Java 实 现 的 轻 量 级
( light-weight)组件,没有本地代码,不依赖操作系统的支持,这是它与 AWT
组件的最大区别。由于 AWT 组件通过与具体平台相关的对等类(Peer)实现,
因此 Swing 比 AWT 组件具有更强的实用性。Swing 在不同的平台上表现一致,
并且有能力提供本地窗口系统不支持的其它特性。
Swing 包中的组件也是采用事件的授权处理模型来处理事件的。它的事件类
型和事件适配器类依然是按照 awt 包中的方式来定义的,并没有附带一个 J 字母。
17) 在 JAVA 编程中,Java 编译器会将 java 程序转换为()。(选择一项)
a) 字节码
b) 可执行代码
c) 机器代码
d) 以上所有选项都不正确
【解析】A
Java 编译器将 java 程序转换为字节码。
18) 在 JAVA 编程中,以下()命令用来执行 java 类文件。(选择一项)
a) javac
b) java
c) appletviewer
d) 以上所有选项都不正确
【解析】B
Javac 是用来编译 java 的源文件的命令。
Java 执行经过编译后产生的类文件。
Appletviewer 是用来查看 java Applet 程序的工具。
19) 在 Java 中,下列代码段允许按钮注册一个 action 事件的是()。(选择一项)
a) button.enableActionEvents();
b) button.addActionListener(anActionListener);
c) button.enableEvents(true);
d) button.enableEvents(AWTEvent.ACTION_EVENT_MASK);
【解析】B
向组件注册事件监听器的方法是 addXXXListener。其中 XXX 代表事件。
事件监听器(event listener)就是一个实现 listener 接口的对象。所以,程序员
要做的就是创建一个 listener 对象,然后向发起事件的组件注册这个对象。注册
的过程就是调用组件的 addXXXListener( )方法,这里"XXX"表示组件所发起的事
件的类型。只要看一眼"addListener"方法的名字就能知道组件能处理哪种事件了,
所以如果你让它听错了事件,那么编译就根本通不过。到后面你就会看到,
JavaBean 在决定它能处理哪些事件时,也遵循"addListener"的命名规范。
20) 在 Java 语言中,下面变量命名合法的有()。(选择两项)
a) variable123
b) 123variable
c) private
d) selg_asd
【解析】A D
命名规范:
定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可
读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,
但是一定要让程序有良好的可读性)
● 普通变量 的命名
以字母或下划线开头,由字母、数字、下划线等组成。但不能是 java 的
关键字。
● Package 的命名
Package 的名字应该都是由一个小写单词组成。
● Class 的命名
Class 的名字必须由大写字母开头而其他字母都小写的单词组成
● Class 变量的命名
变量的名字必须用一个小写字母开头。后面的单词用大写字母开头。
● Static Final 变量的命名
Static Final 变量的名字应该都大写,并且指出完整含义。
● 参数的命名
参数的名字必须和变量的命名规范一致。
● 数组的命名
数组应该总是用下面的方式来命名:
byte[] buffer;
而不是:
byte buffer[];
● 方法的参数
使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:
SetCounter(int size){
this.size = size;
}
21) 在 JAVA 编程中,关于 TextField 的语句如下:
t = new JTextField(“they are good”,40);
JTextField
下面()是正确的。(选择两项)
a) 在这个 JTextField 中,最多只能输入 40 个字符
b) 在这个 JTextField 中,最少可以输入 40 个字符
c) 在这个 JTextField 中,能够输入的字符不一定是 40 个
d) 在这个 JTextField 中,用户可以编辑所输入的字符
【解析】C D
JTextField 构造方法的第二个参数表示文本框的列数。但并不限制它能输
入的字符数。
public JTextField(String text,
int columns)
创建一个新的文本域,并用待显示的指定文本初始化,且它的宽度足以显示指定
的字符数。
参数:
text - 显示的文本。
columns - 字符数