12.如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须 实现 该接口的
所有抽象方法;如果实现某接口的类是abstract的抽象类,则它可以 不实现 该接口所有的方法。但是对于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法以及自身所实现接口中的抽象方法都必须有实在的 方法体 。 13.包的作用有两个,一是 划分类名空间 ,二是 控制类之间的访问 。
14.封装也称 信息隐藏 ,是指类的设计者只为类的使用者提供类的可以访问的部分(包
括类的数据成员和成员方法),而把类中的其他成员 隐藏 起来,使用户不能访问的机制。
15.Java提供了4种访问权限来实现封装机制,即 private 、 protected 、 默认 和 public 。 16.Java中提供两种多态机制, 重载 与 覆盖 。
17.当一个构造方法需要调用另一个构造方法时,可以使用关键字 this ,同时这个调用语
句应该是整个构造方法的 第一条 可执行语句。
18.如果子类自己没有构造方法,那么父类也一定 没有 (有/没有)带参的构造方法,此
时它将继承父类的 无参构造方法 作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行 父类 的构造方法,然后再执行自己的 构造方法 。 19.对于父类的含参数构造方法,子类可以通过在自己的构造方法中使用 super 关键字来调用它,但这个调用语句必须是子类构造方法的 第一条 可执行语句。
20.创建一个名为myPachkage的包的语句为 package myPackage; ,该语句应该放在程序第一行 位置。
第6章
一、选择题
1.给出下面程序代码:
byte[] a1, a2[]; byte a3[][]; byte[][] a4;
下列数组操作语句中哪一个是不正确的?( A ) A.a2 = a1 B.a2 = a3 C.a2 = a4 D.a3 = a4 【解析】只有维数相同的数组才能相互赋值。 2.关于数组,下列说法中不正确的是( C )。
A.数组是最简单的复合数据类型,是一系列数据的集合 B.数组元素可以是基本数据类型、对象或其他数组 C.定义数组时必须分配内存
D.一个数组中所有元素都必须具有相同的数据类型
【解析】数组元素可以是基本数据类型、对象或其他数组。 3.设有下列数组定义语句:
int a[] = {1, 2, 3};
则对此语句的叙述错误的是( C )。 A.定义了一个名为a的一维数组 B.a数组有3个元素 C.a数组元素的下标为1~3 D.数组中每个元素的类型都是整数 【解析】数组元素的下标是从0开始的。
4.执行语句:int[] x = new int[20];后,下面哪个说法是正确的?( C ) A.x[19]为空 B.x[19]未定义 C.x[19]为0 D.x[0]为空
11
【解析】此语句定义了x数组后,x[0]~x[19]的值全部为0。 5.下面代码运行后的输出结果为( A )。
public class X6_1_5 {
public static void main(String[] args) { AB aa = new AB(); AB bb; bb = aa; System.out.println(bb.equals(aa)); } }
class AB{ int x = 100; }
A.true B.false C.编译错误 D.100
【解析】同一个类的两个对象可以相互赋值,赋值后两个对象具有相同的存储空间,因此是相同的。
6.已知有定义:String s=\,下面哪个表达式正确?( A ) A.s += \ B.char c = s[1]; C.int len = s.length; D.String s = s.toLowerCase();
【解析】字符串对象可以执行“+=”运算,但不能用s[1]这种方式取其中的字符,也不能用length求它的长度,可以用length()求其长度,因此B、C不正确,不能再次定义s字符串,因此D不正确。 二、填空题
1. Object类 是所有类的直接或间接父类,它在 java.lang 包中。
2.System类是一个功能强大、非常有用的特殊的类,它提供了 标准输入/输出 、 运行时 系统信息等重要工具。这个类不能 实例化 ,即不能创建System类的对象,所以它所有的属性和方法都是 static 类型,引用时以类名System为前缀即可。
3.Applet由浏览器自动调用的主要方法 init , start , stop 和 destroy 分别对应了Applet从初始化、启动、暂停到消亡的生命周期的各个阶段 。
4.数组是一种 复合 数据类型,在Java中,数组是作为 对象 来处理的。数组是有限元素的有序集合,数组中的元素具有相同的 数据类型 ,并可用统一的 数组名 和 下标 来唯一确定其元素。
5.在数组定义语句中,如果[]在数据类型和变量名之间时,[]之后定义的所有变量都是
数组 类型,当[]在变量名之后时,只有[]之前的变量是 数组 类型,之后没有[]的则不是数组类型。
6.数组初始化包括 静态 初始化和 动态 初始化两种方式。
7.利用 System 类中的 arraycopy() 方法可以实现数组元素的复制;利用 Arrays 类中的 sort() 和 binarySearch() 方法可以实现对数组元素的排序、查找等操作。
8.Java语言提供了两种具有不同操作方式的字符串类: String 类和 StringBuffer 类。它们都是 java.lang.Object 的子类。 三、写出下列程序的运行结果 1.public class X6_3_1 {
public static void main(String[] args) { int a[]={12,39,26,41,55,63,72,40,83,95}; int i1=0,i2=0; for(int i=0;i
12
【运行结果】 6 4
2.public class X6_3_2 {
public static void main(String[] args) { int a[]={36,25,48,14,55,40,32,66}; int b1,b2; b1=b2=a[0]; for(int i=1;ib1 ){ if ( b1 >b2 ) b2=b1; b1=a[i]; } System.out.println(b1+\ } }
【运行结果】 66 55
3.public class X6_3_3 {
public static void main(String[] args) { int a[]={36,25,48,14,55,40,32,66 }; int b1,b2; b1=b2=a[0]; for (int i=1;i
【运行结果】 14 25
4.public class X6_3_4 {
public static void main(String[] args) { String str = \ char[] a =str.toCharArray(); int i1 =0, i2=0, i; for(i=0;i
【运行结果】 4 3
5.public class X6_3_5 {
public static void main(String[] args) { String str =\ char[] a = str.toCharArray(); int b[] = new int[5],i; for(i=0;i
case 'c': b[2] ++; break;
13
case 'd': b[3] ++; break; default : b[4] ++; } } for(i =0; i<5; i++) System.out.print(b[i]+\ System.out.println(); } }
【运行结果】
4 3 2 2 3
6.public class X6_3_6 {
public static void main(String[] args) { int a[] = {76,83,54,62,40,75,90,92,77,84}; int b[] = {60,70,90,101}; int c[]=new int[4],i;
for (i=0; i
while (a[i] >= b[j] ) j ++; c[j] ++; }
for (i=0; i<4; i++) System.out.print(c[i]+\ System.out.println(); } }
【运行结果】
2 1 5 2
7.public class X6_3_7 {
public static void main(String[] args) { int a[][] = {{1,2,7,8},{5,6,11,12},{9,10,3,4}}; int m = a[0][0]; int ii = 0, jj = 0;
for (int i=0;im ){ m =a[i][j]; ii =i; jj =j; }
System.out.println(ii+\ } }
【运行结果】
1 3 12
8.public class X6_3_8 {
public static void main(String[] args) { String[] a = {\,\,\,\,\}; String s1,s2; s1 = s2 = a[0];
for( int i = 1; i0) s1=a[i]; if (a[i].compareTo(s2)<0) s2=a[i]; }
System.out.println(s1+\ } }
14
【运行结果】 worker cadre
第7章
一、选择题
1.关于异常的含义,下列描述中最正确的一个是( D )。 A.程序编译错误 B.程序语法错误 C.程序自定义的异常事件 D.程序编译或运行时发生的异常事件 【解析】异常就是程序编译或运行时发生的异常事件。
2.自定义异常时,可以通过对下列哪一项进行继承?( C ) A.Error类 B.Applet类 C.Exception类及其子类 D.AssertionError类 【解析】自定义异常类时,该类必须继承Exception类及其子类。
3.对应try和catch子句的排列方式,下列哪一项是正确的?( A ) A.子类异常在前,父类异常在后 B.父类异常在前,子类异常在后 C.只能有子类异常 D.父类和子类不能同时出现在try语句块中 【解析】对应try和catch子句的排列方式,要求子类异常(范围小的异常)在前,父类异常(范围大的异常)在后。
4.运行下面程序时,会产生什么异常?( A )
public class X7_1_4 {
public static void main(String[] args) { int x = 0; int y = 5/x; int[] z = {1,2,3,4}; int p = z[4]; } }
A.ArithmeticException B.NumberFormatException C.ArrayIndexOutOfBoundsException D.IOException
【解析】当程序执行到“int y = 5/x”语句时,发生异常,程序中止执行,因此发生ArithmeticException异常。
5.运行下面程序时,会产生什么异常?( C )
public class X7_1_5 {
public static void main(String[] args) { int[] z = {1,2,3,4}; int p = z[4]; int x = 0; int y = 5/x; } }
A.ArithmeticException B.NumberFormatException C.ArrayIndexOutOfBoundsException D.IOException
【解析】当程序执行到“int p = z[4]”语句时,发生异常,程序中止执行,因此发生ArrayIndexOutOfBoundsException异常。 6.下列程序执行的结果是( B )。
public class X7_1_6 {
public static void main(String[] args) { try{
15