nbhkdz.com冰点文库

java程序设计期末考试复习题

时间:

练习思考题参考答案
1.1 单项选择题
1.编译 Java Application 源文件将产生相应的字节码文件,扩展名是什么 A. .java B. .class C. .html D. .exe 解答:B 2. Java 语言具有许多优点和特点, 下列选项中, 哪个反映了 Java 中 “一次编译, 随处运行”的特点。 A. 简单性 C. 面向对象性 解答:B

B. 平台无关性 D. 安全性

3.Java 语言具有许多优点和特点,下列选项中,哪个反映了 Java 中并行机制的 特点。 A. 多线程 C. 面向对象性 解答:A

B. 平台无关性 D. 安全性

4.在 Java 语言中,下列哪些语句关于内存回收的说明是正确的? A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存 ; C.内存回收程序允许程序员直接释放内存 ; D.内存回收程序可以在指定的时间释放内存对象 解答:B 5.一个 Java 源文件中最多只能有多少个 public 类。 A. 1 个 B. 2 个 C. 3 个 D. 任意多个 解答:A 6.下面哪一个不是 Java 语言所具有的特点。

2

《Java 语言程序设计基础教程》

A. 没有全局变量,在类的定义外部没有任何的变量定义; B. 不直接支持指针操作,而使用更安全的引用类型; C. 支持子类对父类的多继承; D. 具有自动垃圾收集功能; 解答:C 7.下面哪一个不是 Java 开发工具包 JDK 的组成部分。 A. Java 的编译器; B. Java 的解释器; C. Java 的 API 继承类库; D. Eclipse 开发工具; 解答:C 8.JDK 提供的编译器是( ) 。 A. java.exe B. javac.exe C. javap.exe D. javaw.exe 解答:B 9.作为 Java 应用程序入口的 main 方法,其声明格式可以是( ) A. public void main(String [] args) B. public static void main(String [] args) C. public static void Main(String * args) D. public int main(String [] args) 解答:B 10.下列说法正确的是( A ) A、 JAVA 程序的 main 方法必须写在类里面 B、 JAVA 程序中可以有多个 main 方法 C、 JAVA 程序中类名必须与文件名一样 D、 JAVA 程序的 main 方法中如果只有一条语句,可以不用{}(大括号)括起来 11.下列哪些语句关于 Java 内存回收的说明是正确的? ( B ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象

2

《Java 语言程序设计基础教程》

3

1.2 填空题
1、 开发与运行 Java 程序需要经过的三个主要步骤为编辑源程序 、编译生成字节码和解释 运行字节码 2、使用 Java 编译器 javac.exe 编译源文件得到字节码文件。 3、Java 应用程序必须通过 Java 解释器 JAVA.exe 来解释执行其字节码文件。 4、如果 Java 源文件中有一个类是 public 类,那么源文件的名字必须与这个类的名字完全相 同,扩展名是.java 。 5、Java 应用程序总是从主类的 main 方法开始执行.

1.3 简答题
1.简述 Java 程序的开发过程? 解答: (1)使用一个文字编辑器,编写源文件。 (2)使用 java 编译器,编译源文件得到字节码文件。 (3)解释运行字节码,分两种 java 应用程序必须通过 java 解释器来解释执行,java 小应用 程序必须使用解释器和浏览器运行程序。 2.什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”? 解答: Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟 机执行的字节码文件。 Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重 写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和 其他特性。 3.Java 语言的关键特点有哪些? 解答: 简单性 平台无关性 面向对象性 安全性 分布式 多线程 动态性

3

4

《Java 语言程序设计基础教程》

2.1 单项选择题
1、 下面哪一项在 java 中是非法的标识符?( ) A. $user B. point C. You&me D. _endline 解答:C 2、 若有定义 int a=9,b=6; 那么 a>b 的值是: ( ) A. 0 B. 1 C. false D. true 解答:D 3、执行完以下代码 int[ ] x = new int[25];后,以下说明正确的是: ( A. x[24]为 0 B. x[24]未定义 C. x[25]为 0 D. x[0]为空 解答:A 4、Java 应用程序的 main 方法中有以下语句,则输出的结果是( int[] x={2,3,-8,7,9}; int max=x[0]; for(int i=1;i<x.length;i++){ if(x[i]>max) max=x[i]; } System.out.println(max); A. 2 B. -8 C. 7 D. 9 解答:D 5、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A. 3 B. 3.5 C. 4 D. 5 解答:A 5、执行 System.out.println(5/4),这条代码的输出结果是( ) A. 1 B. 1.25 C. 1.5 D. 0 解答:A 6、下列语句有错误的是: ( A. int []a;
4



) 。



) B. int []b=new int[10];

《Java 语言程序设计基础教程》

5

C. int c[]=new int[]; D. int d[]=null; 解答:C 7、下列语句有错误的是: ( ) A. int a[][]=new int[5][5]; B. int [][]b=new int[5][5]; C. int []c[]=new int[5][5]; D. int [][]d=new int[5,5]; 解答:D 8、下列哪一个不属于 Java 中的 8 种基本数据类型( ) A. double; B.char; C. int; D. String; 解答:D 9、以下数据类型存储空间最大的是( ) 。 (A)byte (B)long (C)float (D)char 解答:B 10、System.out.println("5" + 2);的输出结果应该是() 。 A 52 B7 C2 D5 答案:A 11. 在类的定义中可以有两个同名方法, 每个方法的参数不同, 这种现象称为方法 (D ) 。 (A)封装 (B)继承 (C)覆盖 (D)重载 12.java 中定义字符串 String s=”pzhu”,下面操作可以取得字符串长度的是( ) 。 A. s.length() B. s.length C. s.size() D. length(s) 解答:A 13.指出下列程序运行的结果 (B)(很难) public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String args[]) { Example ex = new Example(); ex.change(ex.str, ex.ch); System.out.print(ex.str + " and "); System.out.print(ex.ch); } public void change(String str, char ch[]) { str = "test ok"; ch[0] = 'g'; } } A、 good and abc B、 good and gbc
5

6

《Java 语言程序设计基础教程》

C、 test ok and abc D、 test ok and gbc 14.下面代码的运行结果为: (C)(较难) import java.io.*; import java.util.*; public class foo{ public static void main (String[] args){ String s; System.out.println("s=" + s); } } A 代码得到编译,并输出“s=” B 代码得到编译,并输出“s=null” C 由于 String s 没有初始化,代码不能编译通过 D 代码得到编译,但捕获到 NullPointException 异常 15.关于以下程序段,正确的说法是( C ) 1. String s1=”abc”+”def”; 2. String s2=new String(s1) ; 3. if(s1= =s2) 4. System.out.println(“= = succeeded”); 5. if (s1.equals(s2)) 6. System.out.println(“.equals() succeeded”); A、行 4 与行 6 都将执行 B、行 4 执行,行 6 不执行 C、行 6 执行,行 4 不执行 D、行 4、行 6 都不执行 16. Java application 中的主类需包含 main 方法, main 方法的返回类型是什么? ( D ) A、int B、float C、double D、void 17.为一个 boolean 类型变量赋值时,可以使用(B )方式 A、 boolean = 1; B、 boolean a = (9 >= 10); C、 boolean a="真"; D、 boolean a = = false; 18.表达式(11+3*8)/4%3 的值是( D ) A、 31 B、 0 C、 1 D、 2 19.运算符优先级别排序正确的是( A) (太难) A、 由高向低分别是:()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符; B、 由高向低分别是:()、关系运算符、算术运算符、赋值运算符、!、逻辑运算符;
6

《Java 语言程序设计基础教程》

7

C、 由高向低分别是:()、算术运算符、逻辑运算符、关系运算符、!、赋值运算符; D、 由高向低分别是:()、!、关系运算符、赋值运算符、算术运算符、逻辑运算符; 20.下列值不为 true 的表达式有(C ) 。 A、 "john" = = "john" B、 "john".equals("john") C、 "john" = "john" D、 "john".equals(new String("john")) 21、下面的方法,当输入为 2 的时候返回值是多少?(D)(很难) public static int getValue(int i) { int result = 0; switch (i) { case 1: result = result + i; case 2: result = result + i * 2; case 3: result = result + i * 3; } return result; } A0 B2 C4 D10 答案:D 解析:注意这里 case 后面没有加 break,所以从 case 2 开始一直往下运行。 22、下面有关 for 循环的描述正确的是( A ) A、 for 循环体语句中,可以包含多条语句,但要用大括号括起来 B、 for 循环只能用于循环次数已经确定的情况 C、 在 for 循环中,不能使用 break 语句跳出循环 D、 for 循环是先执行循环体语句,后进行条件判断 23、 score 是一个整数数组, 有五个元素, 已经正确初始化并赋值, 仔细阅读下面代码, 程序运行结果是( B ) temp = score[0]; for (int index = 1;index < 5;index++) { if (score[index] < temp) { temp = score[index]; } } A. 求最大数 B. 求最小数 C. 找到数组最后一个元素 D. 编译出错

7

8

《Java 语言程序设计基础教程》

2.2 填空题
1、Java 语言是一种完全的面向对象程序设计语言 2、String s1=“China”; int n=s1.length( ); n 的值为 5 3、在 Java 语言中,基本数据类型包括:整数类型、浮点类型、字符类型和布尔类型 4、在 Java 的基本数据类型中,char 型采用 Unicode 编码方案,每个 Unicode 码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。 5、设 x = 2 ,则表达式 ( x + + )/3 的值是 0。 6、设有数组定义: int MyIntArray[] = { 10, 20, 30, 40, 50, 60, 70 }; 则执行以下几个语句后的输出结果是:120。 int MyIntArray[] = { 10, 20, 30, 40, 50, 60, 70 }; int s = 0; for (int i = 0; i < MyIntArray.length; i++) if (i % 2 == 1) s += MyIntArray[i]; System.out.println(s); 7、 数组对象的长度在数组对象创建之后, 就不会改变。 数组元素的下标总是从 0 开始。 8、对于数组 int[][]t={{1,2,3},{4,5,6}}来说,t.length 等于 2,t[0].length 等于 3。

2.3 简答题
1、Java 的基本数据类型有哪 8 种,每种类型的内存空间分别是多少。 解答: byte b; 1 字节 short s; 2 字节 int i; 4 字节 long l; 8 字节 char c; 2 字节(C 语言中是 1 字节) float f; 4 字节 double d; 8 字节 boolean bool; false/true 1 字节

2.4 综合题
1、编写一个程序使之从键盘读入 10 个整数存入整型数组 a 中,并输出这 10 个整数的
8

《Java 语言程序设计基础教程》

9

最大值和最小值。 import java.util.Scanner; public class lianxi30 { public static void main(String args[]) { Scanner temp; float[] sum = new float[11]; float max, min; for (int i = 0; i < 10; i++) { System.out.println("请输入第一个数字(回车结束):"); temp = new Scanner(System.in); String a = temp.nextLine(); sum[i] = Integer.parseInt(a); //获取输入的字符串 } max = sum[0]; min = sum[0]; for (int j = 1; j < 10; j++) { if (max < sum[j]) max = sum[j]; else if (min > sum[j]) min = sum[j]; } System.out.println(max); System.out.println(min); } }

3.1 单项选择题
1、 下列关于变量的叙述哪个是错的?( ) A. 实例变量是类的成员变量。 B. 在方法中定义的局部变量在该方法被执行时创建。 C. 实例变量用关键字 static 声明。 D. 局部变量在使用前必须被初始化。 解答:C 2、 在 Java 语言中,下列哪个包是编译器自动导入的?( A. java.applet B. java.lang C. java.io D. java.awt



9

10

《Java 语言程序设计基础教程》

解答:B 3、 不允许作为类及类成员的访问控制符的是( ) 。 A. public B. private C. static D. protected 解答:C 4、 为 AB 类的一个无形式参数无返回值的方法 method 书写方法头, 使得使用类名 AB 作为前缀就可以调用它,该方法头的形式为( ) 。 A、 static void method( ) B、 public void method( ) C、 final void method( ) D、 abstract void method( ) 解答:A 5、 可以在下面代码段 point x 处写入的是?( ) //point x public class Interesting{ //do something } A. String str; B. static int PI=3.14; C. public class MyClass{//do other thing…} D. import java.awt.*; 解答:D 6、Java 提供的许多类在不同的包中,使用下面哪个语句可以引入包中的类。 A. package B. include C. import D. add 解答:C 7、已知 A 类被打包在 packageA , B 类被打包在 packageB ,且 B 类被声明为 public , 且有一个成员变量 x 被声明为 protected 控制方式 。C 类也位于 packageA 包,且继承了 B 类 。则以下说法正确的是: ( ) A、A 类的实例不能访问到 B 类的实例 B、A 类的实例能够访问到 B 类一个实例的 x 成员 C、C 类的实例可以访问到 B 类一个实例的 x 成员 D、C 类的实例不能访问到 B 类的实例 解答:C(太难) 8、在 Java 中,关于 final 关键字的说法正确的是( ) A、如果修饰变量,则一旦赋了值,就等同一个常量。 B、如果修饰类,则该类只能被一个子类继承。 C、如果修饰方法,则该方法不能在子类中被覆盖。 D、如果修饰方法,则该方法所在的类不能被继承。 解答:A,C 9、关于构造方法以下说法错误的是 ( D )。
10

《Java 语言程序设计基础教程》

11

(A)构造方法名必须与类名一致 (B)构造方法可以重载 (C)构造方法是通过 new 来调用 (D)每个类都必须编写构造方法代码 10、关于类的定义以下说法错误( B ) 。 (A)类定义使用 class 关键字 (B)每个类中必须有一个 main 方法 (C)一个包可以包含多个类 (D)java 中所有类都是 Object 类的子类 11、在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 12、在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A 和 B 都对 D) A 和 B 都不对 13、关于以下程序代码的说明正确的是( D ) class HasStatic{ private static int x=100; public static void main(String args[ ]){ HasStatic hs1=new HasStatic( ); hs1.x++; HasStatic hs2=new HasStatic( ); hs2.x++; hs1=new HasStatic( ); hs1.x++; HasStatic.x- -; System.out.println(“x=”+x); } } A、 5 行不能通过编译,因为引用了私有静态变量 B、 10 行不能通过编译,因为 x 是私有静态变量 C、 程序通过编译,输出结果为:x=103 D、 程序通过编译,输出结果为:x=102 14、以下关于构造函数的描述错误的是( A ) 。 A、构造函数的返回类型只能是 void 型。 B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 15、Java 中,在如下所示的 Test 类中,共有(C )个构造方法。 public class Test{ private int x;
11

12 public Test(){ x=35; } public void Test(double f){ public Test(String s){} }

《Java 语言程序设计基础教程》

This.x=(int)f; }

A、 0 B、 1 C、 2 D、 3 16、在 Java 中,关于构造方法,下列说法错误的是( C ) A、 构造方法的名称必须与类名相同 B、 构造方法可以带参数 C、 构造方法不可以重载 D、 构造方法绝对不能有返回值 17、在 Java 语言中,下列关于类的继承的描述,正确的是(B ) 。 A、 一个类可以继承多个父类 B、 一个类可以具有多个子类 C、 子类可以使用父类的所有方法 D、 子类一定比父类有更多的成员方法 18、分析选项中关于 Java 中 this 关键字的说法正确的是( A ) A、 this 关键字是在对象内部指代自身的引用 B、 this 关键字可以在类中的任何位置使用 C、 this 关键字和类关联,而不是和特定的对象关联 D、 同一个类的不同对象共用一个 this 19、在 Java 接口中,下列选项中有效的方法声明是( A ) 。 A、 public void aMethod(); B、 public final void aMethod(); C、 protected void aMethod(); D、 private void aMethod(); 20、下列选项中关于 Java 中 super 关键字的说法正确的是(A ) 。 A、 super 关键字是在子类对象内部指代其父类对象的引用 B、 super 关键字不仅可以指代子类的直接父类,还可以指代父类的父类 C、 子类通过 super 关键字只能调用父类的方法,而不能调用父类的属性 D、 子类通过 super 关键字只能调用父类的属性,而不能调用父类的方法

3.2 填空题
1、在 Java 程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多多 重继承。 2、抽象(abstract)方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方 法必须在抽象类之中定义。final 方法是不能被当前类的子类重新定义的方法。 3、面向对象程序设计的三个特征是封装、多态、继承
12

《Java 语言程序设计基础教程》

13

4、Java 是面向对象语言,类是客观事物的抽象,而对象是类的实例。 5、如果在子类中想使用被子类隐藏的父类成员变量或方法,就可以使用关键字 super。 6、Java 中有一种叫作构造方法的特殊方法用来对类的对象成员进行初始化。 7、 JAVA 语言中提供了两种类型的字符串类来处理字符串, 它们是 String 和 StringBuffer 类 8、Java 语言中,所有 的类都是 Object 的子类,Java 的窗口通常是 JFrame 的子类,抽 象类只能定义但不能被实例化,最终类不能被继承 9、一般 Java 程序的类体由两部分组成:一部分是属性,另一部分是方法 10、分别用 class 关键字来定义类,用 new 关键字来分配实例存储空间。 11、 Java 中类成员的限定词有以下几种: private, public , protected , 缺省。 其中, public 的限定的范围最大。类中限定为 private 的成员,只能被这个类本身内部访问。 12、Java 类中,如果类的定义者没有显式的定义任何构造方法, 系统将自动提供一个无 参默认构造方法。 13、在子类中定义与父类的相同的方法,若在多个子类中定义相同的方法,则可以调用不 同子类中的相同方法而实现不同的功能,这实现了程序运行时的多态 。

3.3 简答题
1. 简单阐述方法的重载和方法的重写之间的区别 解答: 重写是子类的方法覆盖父类的方法,要求方法名和参数都相同 重载是在同一个类中的两个或两个以上的方法, 拥有相同的方法名, 但是参数却不相同 2、 简述实例变量和类变量的区别。 解答: 类变量也叫静态变量,也就是在变量前加了 static 的变量;实例变量也叫对象变量,即 没加 static 的变量; 区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改 变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象。 3、简述实例方法和类方法的区别 解答: 实例方法可以对当前对象的实例变量进行操作, 也可以对类变量进行操作, 实例方法由 实例对象调用。 但类方法不能访问实例变量, 只能访问类变量。 类方法可以由类名直接调用, 也可由实例对象进行调用。类方法中不能使用 this 或 super 关键字。 4、面向对象的三个基本特征是什么,分别简单介绍每个特征。 解答: 三大特性是:封装,继承,多态。 封装性就是把对象的属性和服务结合成一个独立的单位,并尽可能隐蔽对象的内部细 节。
13

14

《Java 语言程序设计基础教程》

特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。 对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的 数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有 不同的语义。 5、简单阐述成员变量和局部变量的区别。 解答: 1)成员变量在整个类内都有效,局部变量只在定义它的方法内有效。 2)成员变量又分为实例成员变量(简称实例变量)和类变量(也称静态变量) ,如果成 员变量的类型前面加上关键字 static,这样的成员变量称为类变量或静态变量。 3)如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,也就是说,这个成 员变量在这个方法内暂时失效。 这时如果想在该方法内使用成员变量, 必须使用关键字 this。 6、 简述对象的引用和实体。 解答: 当用类创建一个对象时, 类中的成员变量被分配内存空间, 这些内存空间称为该对象的 实体,而对象中存放着引用,以确保实体由该对象操作使用。没有实体的对象称为空对象, 空对象不能使用,即不能让一个空对象去调用方法产生行为。 7、简述 this 关键字的意义,以及它在成员方法和构造方法中如何使用。 解答: this 是 Java 的一个关键字,表示某个对象。this 可以出现在实例方法和构造方法中,但 不可以出现在类方法中。 this 可以出现在实例方法和构造方法中, 但不可以出现在类方法中。 this 关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。实例方法必须通 过对象来调用, 当 this 关键字出现在类的实例方法中时, 代表正在调用该方法的当前对象。 成员函数中定义了和成员变量中相同的变量时,引用成员变量要用 this;构造函数中调 用同一个类的其他构造函数时用 this。 8、简单描述 Java 的参数传值中的两种方式,基本数据类型参数的传值和引用类型参 数的传值? 解答: 在基本数据类型参数的传值中,基本数据类型的参数向该参数传递的值的级别不可以 高于该参数的级别。 在引用类型参数的传值中,Java 的引用类型数据包括对象、 数组和接口, 当参数是引用 类型时, “传值”传递的是变量的引用而不是变量所引用的实体。如果改变参数变量所引用 的实体, 就会导致原变量的实体发生同样的变化, 但是如果改变参数的引用不会影响向其传 值的变量的引用。 9、基本数据类型和对象作为参数传递的不同? 解答: (1) 基本数据类型作为参数在方法中传递的是值传递。 (2) 对象是引用传递,当对象作为参数传递时,传递的是对象的地址。

14

《Java 语言程序设计基础教程》

15

3.4 综合题
1、定义一个“点”(Point)类用来表示三维空间中的点,类体的成员变量 x,y,z 分别表示三维 空间的坐标。类体中具有如下成员方法的定义: 1)构造方法 Point()可以生成具有特定坐标的点对象。 2)setX(), setY(), setZ()为可以设置三个坐标的方法。 3.)getDistance()为可以计算该点距离原点距离平方的方法。 解答: class Point{ double x,y,z ; Point(double _x,double _y,double _z) { x = _x ; y = _y ; z =_z ; } void setX(double _x){ x=_x ; } void setY(double _y){ y=_y ; } void setZ(double _z){ z=_z ; } double getDistance(){ return ( x*x+y*y+z*z) ; } } 2、编写一个 Java 应用程序 Test 类,实现成员方法 max(a,b)的重载。具体要求如下: a) 编写 void max(int a,int b)成员方法,对两个整数进行大小的比较,输出打印较大的那个 整数。 b) 编写 void max(float a,float b)成员方法,对两个 float 数进行大小的比较,输出打印较大 的那个 float 数。 c) 编写 void max(double a,double b)成员方法,对两个 double 数进行大小的比较,输出打 印较大的那个 double 数。 public class Test{
15

16

《Java 语言程序设计基础教程》

void max(int a,int b){ System.out.println(a>b ? a:b) ; } void max(float a,float b){ System.out.println(a>b ? a:b) ; } void max(double a, double b){ System.out.println(a>b ? a:b) ; } public static void main(String[] args){ Test t =new Test() ; t.max(3,4) ; } } 3、 编写一个矩形类对数学中的矩形进行抽象描述, 并具有方法可以计算矩形的周长和面积, 具体分为以下三个子任务完成。 (1)创建 Rectangle 类,添加属性 width、height,并定义构造方法 Rectangle(double _width, double _height); (2) 在 Rectangle 类中添加两种方法 computCircum()和 computArea()分别计算矩形的周长和 面积; (3)编程利用 Rectangle 对象输出一个 30*40 的矩形的周长和面积。 解答: public?class?TestRectang?{? ? public?static?void?main(String[]?args)?{? ? ? //?TODO?Auto‐generated?method?stub? ? ? Rectangle?rect1?=?new?Rectangle(20,30)?;? ? ? System.out.println(rect1.computArea());? ? ? System.out.println(rect1.computCircum());? ? }? }? class?Rectangle{? ? double?width,height?;? ? Rectangle(){? ? ? width?=?0?;? ? ? height?=?0?;? ? }? ? Rectangle(double?_width,double?_height){? ? ? width?=?_width?;? ? ? height?=?_height?;?
16

《Java 语言程序设计基础教程》

17

? ? ? ? ? ? ? }?

}? double?computArea()?{? ? }? ? ? }? double?computCircum(){? return?2*(width+height)?;? return?width*height?;?

4.1 单项选择题
1、 Java 中用于定义接口的关键字是( ) A、import B、package C、class D、interface 解答:D 2、 以下关于 abstract 的说法,正确的是( ) A、abstract 只能修饰类 B、abstract 只能修饰方法 C、abstract 类中必须有 abstract 方法 D、abstarct 方法所在的类必须用 abstract 修饰 解答:D 3、 下列哪种说法是正确的( ) A、私有方法不能被子类覆盖。 B、子类可以覆盖超类中的任何方法。 C、覆盖方法可以声明自己抛出的异常多于那个被覆盖的方法。 D、覆盖方法中的参数清单必须是被覆盖方法参数清单的子集。 解答:A 4、关于类继承的说法,正确的是( ) A、Java 类允许多重继承 B、Java 接口允许多继承 C、接口和类都允许多继承 D、接口和类都不允许多继承 解答:B 5、 关于抽象类,正确的是______。 A. 抽象类中不可以有非抽象方法 B. 某个非抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法 C. 可以用抽象类直接去创建对象 D. 接口和抽象类是同一个概念
17

18

《Java 语言程序设计基础教程》

解答:B 6、 抽象类 A 和抽象类 B 的定义如下: abstract class A { abstract int getinfo(); } public class B extends A { private int a = 0; public int getinfo() { return a; } public static void main(String args[]) { B b = new B(); System.out.println(b.getinfo()); } } 关于上述代码说明正确的是( ) 。 A. 输出结果为 0 B.通过编译但没有输出任何结果 C. 第 5 行不能通过编译 D. 程序第 2 行不能通过编译 解答:A 7、 下面程序的运行结果是______ class ex4_5_11_A { protected static int count = 0; public ex4_5_11_A() { count++; } } class ex4_5_11_B extends ex4_5_11_A { public ex4_5_11_B() { count++; } } class ex4_5_11 { public static void main(String args[]) { ex4_5_11_B x = new ex4_5_11_B(); System.out.println("count=" + x.count); } } A. count=1 B. count=2 C. count=3 D. count=4
18

《Java 语言程序设计基础教程》

19

解答:B 8、设有下面两个类的定义: class Person { long id; // 身份证号 String name; // 姓名 } class Student extends Person { int score; // 入学总分 int getScore(){ return score; } } 问:类 Person 和类 Student 的关系是( ) A、包含关系 B、继承关系 C、关联关系 D、无关系,上述类定义有语法错误 解答:B 9、以下程序代码错误的是( B ) 。 abstract class P{} class A extends P{} abstract class B extends P{} (A)P p=new A(); (B)P p=new B(); (C)A a=new A(); (D)P p=new P(){void foo(){}}; 10、下面是 People 和 Child 类的定义和构造方法,每个构造方法都输出编号。在执行 new Child("mike")的时候都有哪些构造方法被顺序调用?请选择输出结果 ( D) class People { String name; public People() { System.out.print(1); } public People(String name) { System.out.print(2); this.name = name; } } class Child extends People { People father; public Child(String name) { System.out.print(3); this.name = name;
19

20

《Java 语言程序设计基础教程》

father = new People(name + ":F"); } public Child() { System.out.print(4); } } A312 B 32 C 432 D 132 11、选项中哪一行代码可以替换题目中//add code here 而不产生编译错误?(A) public abstract class MyClass { public int constInt = 5; //add code here public void method() { } } A public abstract void method(int a); B constInt = constInt + 5; C public int method(); D public abstract void anotherMethod() {} 12、以下哪项是接口的正确定义?( D ) A、 interface B { void print() { } } B、 abstract interface B { void print() } C、 abstract interface B extends A1,A2 //A1、A2 为已定义的接口 { abstract void print(){ };} D、 interface B { void print();} 13、A 派生出子类 B,B 派生出子类 C,并且在 Java 源代码中有如下声明: 1. A a0=new A(); 2. A a1 =new B(); 3. A a2=new C(); 问以下哪个说法是正确的? ( D ) A、只有第 1 行能通过编译 B、第 1、2 行能通过编译,但第 3 行编译出错 C、第 1、2、3 行能通过编译,但第 2、3 行运行时出错 D、第 1 行、第 2 行和第 3 行的声明都是正确的 14、假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的? ( C ) class A { int i;
20

《Java 语言程序设计基础教程》

21

static String s; void method1() { } static void method2()

{

}

} A、System.out.println(a.i); B、a.method1(); C、A.method1(); D、A.method2() 15、以下关于继承的叙述正确的是( A ) 。 A、在 Java 中类只允许单一继承 B、在 Java 中一个类只能实现一个接口 C、在 Java 中一个类不能同时继承一个类和实现一个接口 D、在 Java 中接口只允许单一继承 16、以下关于抽象类和接口的说法错误的是(E ) A、 抽象类在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承。但是一 个类却可以实现多个接口。 B、 在抽象类中可以没有抽象方法 C、 实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。接口中的 方 法都不能被实现 D、 接口中定义的变量默认是 public static final 型,且必须给其初值,所以实现类中不 能重新定义,也不能改变其值 E、 接口中的方法都必须加上 public 关键字

4.2 填空题
1、 在 Java 语言中所有的类都是直接或间接地继承 Object 类而得到的。 2、在 Java 中一个父类可以有多个子类,一个类只能有一个直接父类。 3、Java 中不能被实例化、只能被子类继承的是抽象类 4、当子类中的变量或方法与父类的变量和方法重名时,子类的变量被隐藏,子类中的方 法被重载。此时,指向父类中的变量或方法,则用 super 关键字实现。 5、用来定义一个类指定继承父类的关键字是 extends,用来指定接口的继承的关键字是 implements 6、在已有类的基础上构造一个新的类,称为类的继承。

4.3 简答题
1、请举例简要说明 JAVA 语言的继承机制有何特点? 解答: 子类可以使用父类中的成员变量和方法, 然后也可以添加自己的属性和方法。 如果子类
21

22

《Java 语言程序设计基础教程》

没有构造方法, 则编译器首先为子类添加一个无参的构造方法, 然后调用父类的默认构造方 法,如果子类有构造方法,则先调用父类的默认构造方法,再调用子类的构造方法;如果父 类中没有默认构造方法,则出错。 (太难) 2、什么是继承?什么是多重继承和单继承?Java 采用何种机制来实现多重继承? 解答: 继承是面向对象编程的一种特性, 是保留原有类功能的前提下拓展或改写部分功能, 实 现代码复用的方式。 单继承就是一个类只可以继承自一个父类, 多继承是指一个类可以同时 继承多个父类。java 中使用的是单继承,也就是一个类有且只能有一个父类,java 中可以使 用接口实现来实现类似多继承的效果。 3、简述 super 关键字的意义,以及如何使用。 解答: 关键字 super 表示父类对象。通过在子类中使用 super 做前缀可以引用被子类隐藏的父 类变量或被子类重写的父类方法。super 用来引用当前对象的父类,虽然构造方法不能够继 承,但利用 super 关键字,子类构造方法中也可以调用父类的构造方法。1)操作被隐藏的变 量和方法;2)使用 super 调用父类的构造方法。 4、抽象类是什么,抽象方法是什么。 解答: 抽象类就是不能使用 new 方法进行实例化的类,即没有具体实例对象的类。抽象类有 点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创 建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。 抽象方法就是以 abstract 修饰的方法,这种方法只声明返回的数据类型、方法名称和所 需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方 法时,意味着这个方法必须被子类的方法所重写,否则其子类的方法仍然是 abstract 的。 4、接口是什么,以及它的用处体现在哪几个方面。 解答: 接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法 都是抽象方法。它的用处体现在下面几个方面: 1)通过接口实现不相关类的相同行为,而 无需考虑这些类之间的关系。2)通过接口指明多个类需要实现的方法。 3)通过接口了解对 象的交互界面,而无需了解对象所对应的类。 5、什么是接口,什么是抽象类,接口和抽象类的区别? 解答: 抽象类就是不能使用 new 方法进行实例化的类,即没有具体实例对象的类。抽象类有 点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创 建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。 接口是抽象类的一种特殊形式, 只包含常量和方法的定义, 而没有变量和方法的实现, 且其方法都是抽象方法。 抽象层次不同,抽象类是对类的抽象,而接口是对行为的抽象。 跨域层次不同,抽象类的跨域是具有相似的类,接口可以跨域不同的类。 设计层次不同,抽象类是自底向上抽象而来,子类抽象父类接口是自顶向下设计的,无
22

《Java 语言程序设计基础教程》

23

需知道子类。 6、接口的用处体现哪几个方面? 解答: 通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。 通过接口指明多个类需要实现的方法。 通过接口了解对象的交互界面,而无需了解对象所对应的类。 7、接口与实现类(具体类)关系: 解答: 多个无关的类可以实现同一个接口。 一个类可以实现多个无关的接口。 与继承关系类似,接口与实现类之间存在多态性。 8、子类与父类的继承关系中,什么是属性隐藏?什么是方法重写? 解答: 隐藏是指当父类和子类有相同名字的属性的时候, 父类的同名变量形式上不可见了。 但 是实际还是存在的。 重写是针对方法的, 通常是父类的方法在子类中重新写过。 当执行子类的实例得时候, 实际运行的是子类的方法。在子类里面可以通过 super.method()来显式的访问。 9、子类会继承父类的所有方法和属性么? 解答: 在同一个包中除 private 声明外的方法都可以继承。不在同一个包中,只继承 protected 和 public 声明的方法。 (太难了) 10、Java 中的方法重写(Overriding)和方法重载(Overloading)分别是什么? 解答: Java 中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不 同的情况。与此相对,方法重写是说子类重新定义了父类的方法。子类中重写的方法和父类 中被重写的方法必须有相同的方法名,参数列表和返回类型,只是方法体不同。

4.4 综合题
1、写出一个类 People,并由该类做基类派生出子类 Employee 和 Teacher。其中 People 类具有 name、age 两个保护成员变量,分别为 String 类型、整型,且具有公有的 getAge 成 员函数, 用于返回 age 变量的值。 Employee 类具有保护成员变量 empno 为 String 类型,Teacher 类有 teano 为 String 类型和 zc 成员变量为 String 类型。 解答: //People 类: public abstract class People { protected String name; protected int age;
23

24 public int getAge() { return age; }

《Java 语言程序设计基础教程》

} //Employee 类: public class Employee extends People { protected String empno; } //Teacher 类: public class Teacher extends People { protected String teano; protected String zc; } 2、定义一个新的类 Student 类,继承 Person 类。要求: 1)增加“school”属性为 String 类型。 2)重载 Student 类的构造方法,Student(String n,String l,String school)。 3)重写 Person 类的 info()方法,增加 school 信息。 class Person{ private String name; private String location; Person(String name, String location){ this.name =name; this.location =location ; } public String info(){ return "name:"+name+"location:"+location ; } } 解答: class Student extends Person{ private String school ; Student(String n,String l,String school){ super(n,l); this.school = school ; }

24

《Java 语言程序设计基础教程》

25

public String info(){ return super.info()+"school:"+school ; } } 3、定义一个接口,该接口中只有一个抽象方法 getClassName()。设计一个类 Horse,该 类实现接口 ClassName 中的方法 getClassName(),功能是获取该类的类名。 interface Classname { public String getclassname(); } class Horse implements Classname { public String getclassname() { return this.getClass().getName(); } } public class Test { public static void main(String[] args) { Classname name = new Horse(); System.out.println(name.getclassname()); } } 4、编写一个 Java 应用程序,该程序中有 1 个 Cat 类继承 Object 类,具有三个成员属性 String name、int furColor、int height,一个构造方法 Cat(String name,int furColor,int height), 并且重写 Cat 类的 toString()和 equals(Object obj)成员方法。具体要求如下: a) 重写 toString 成员方法,返回值是成员属性 String name 的值。 b) 重写 equals 成员方法,如果两个 Cat 对象的 furColor 和 height 属性相等那么返回 值是 true,否则返回值是 false。 class Cat{ int color ; int height,weight ; public Cat(String name,int color,int height,int weight){ this.name=name ; this.color = color ; this.height = height ; this.weight = weight ; } public String toString(){ return this.name; } public boolean equals(Object obj){
25

26

《Java 语言程序设计基础教程》

if(obj==null) return false ; else{ if(obj instanceof Cat){ Cat c =(Cat) obj ; if(c.color==this.color && c.height==this.height) return true ; } } return false ; } } 5. 定义一个动物类 Animal, 具有 name 成员变量, 构造方法和 sing()方法。 定义一个 Cat 类继承 Animal 类,增添 furColor 成员变量,重写构造方法和 sing()方法。定义一个 Bird 类 继承 Animal 类,增添 featherColor 成员变量,重写构造方法和 sing()方法。在 main 方法中 接收用户的输入"1.Cat 2.Bird" 创建 Cat 或者 Bird 对象,并把该对象的引用赋值给一个 Animal 引用变量 pet,最后调用引用变量 pet 的方法 sing(),并将结果输出。 package com.pm.Poly; class Animal{ private String name ; Animal(String name){ this.name =name ; } public void enjoy(){ System.out.println("叫声...."); } } class Cat extends Animal{ private String eyesColor ; Cat(String n,String c){ super(n) ; eyesColor = c ; } public void enjoy(){ System.out.println("猫叫声...."); } } class Dog extends Animal{ private String furColor ; Dog(String n,String c){
26

《Java 语言程序设计基础教程》

27

super(n) ; furColor = c ; } public void enjoy(){ System.out.println("狗叫声...."); } } class Bird extends Animal{ private String featherColor ; Bird(String n,String f){ super(n) ; featherColor=f ; } public void enjoy(){ System.out.println("鸟叫声....."); } } class Lady{ private String name; private Animal pet ; Lady(String name,Animal pet){ this.name =name ; this.pet =pet ; } public void myPetEnjoy(){ pet.enjoy(); } } public class TestPolymoph { public static void main(String[] args) { // TODO Auto-generated method stub Lady l3 = new Lady("l3",new Bird("birdname","green")) ; l3.myPetEnjoy() ; } }

27

28

《Java 语言程序设计基础教程》

5.1 单项选择题
1、 仔细分析下面程序,正确的输出结果是( ) public class Test1 { public static void changeStr(String str) { str = "welcome"; } public static void main(String[] args) { String str = "1234"; changeStr(str); System.out.println(str); } } A、welcome B、welcome1234 C、1234 D、1234welcome 解答:C(太难) 2、 Java 语言中的一些常用的实用工具, 如处理时间的 Date 类, 处理变长数组的 Vector 类等,所在的包是( ) 。 A、java.lang 包 B、java.io 包 C、java.awt 包 D、java.util 包 解答:D 3、在 Java 中,所有类的根类是( ) 。 A、java.lang.Object B、java.lang.Class C、java.applet.Applet D、java.awt.Frame 解答:A 4、以下用于创建容器对象的类是( A ) A、 Frame B、 Checkbox C、 Button D、 TextField 5、在 JAVA 中,以下( C )类的对象以键-值的方式存储对象 A、 java.util.List B、 java.util.ArrayList C、 java.util.Hashtable D、 java.util.LinkedList 6、给定如下 Java 程序代码片段,编译运行这段代码,结果是(B ) 。 java.util.Hashtable table = new java.util.Hashtable(); table .put("name",null); table .put("name","Jack"); System.out.println(table .get("name")); A. null B. Jack C. nullJack D. 运行时出现异常
28

《Java 语言程序设计基础教程》

29

5.2 填空题
1、java 的自动垃圾收集机制大大减轻了程序员的负担,不用再编写专门的内存回收程 序解决内存分配问题 2、Math.random()可以产生一个在 0 和 1 之间的数,请写出产生一个在 125 与 175 之间 的整数的语句 Math.round( 125+50*Math.random() )

5.3 简答题
1、请举例说明 string 类与 StringBuffer 类的区别? 解答: StringBuffer 对象的内容可以修改;而 String 对象一旦产生后就不可以被修改,重新赋 值其实是两个对象。StringBuffer 的内部实现方式和 String 不同,StringBuffer 在进行字符串 处理时,不生成新的对象,在内存使用上要优于 String 类。所以在实际使用时,如果经常需 要对一个字符串进行修改,使用 StringBuffer 要更加适合一些。

5.4 综合题
1、请编写程序,将下列字符串 s="1,2;3,4,5;6,7,8"转为二维实数数组? public class ArrayParser{ public static void main(String[] args){ double[][] d; String s="1,2;3,4,5;6,7,8" ; String[] sFirst = s.split(";") ; d= new double[sFirst.length][]; for(int i=0 ;i<sFirst.length;i++){ String[] sSecond=sFirst[i].split(",") ; d[i] = new double[sSecond.length] ; for(int j=0;j<sSecond.length;j++){ d[i][j] =Double.parseDouble(sSecond[j]) ; //System.out.println(sSecond[j]) ; } } for(int i=0;i<d.length;i++){ for(int j=0;j<d[i].length;j++){
29

30

《Java 语言程序设计基础教程》

System.out.print(d[i][j]+" ") ; } System.out.println() ; } } }

6.1 单项选择题
1、 下列哪一项不是直接或者间接继承了 Component 类的子类。 A、Frame B、Panel C、Button D、Menu 解答:D 2、 下列哪一项是一个用于在 GridLayout 中的特定区域中放置多个组件的容器? A、Applet B、Panel C、Button D、Rectangle 解答:B 3、 下列容器类中哪一个是从 java.awt.Window 继承的?( ) A、Frame B、Panel C、Container D、Applet 解答:A 4、 下面哪个事件监听器可以处理在文本框中输入回车键的事件______。 A. ItemListener B. ActionListener C. KeyListener D. MouseListener 解答:B 5、Frame 类对象的默认布局是什么布局?( ) 。 A、FlowLayout 布局 B、BorderLayout 布局 C、CardLayout 布局 D、GridLayout 布局 解答:B 6、Panel 类对象的默认布局是什么布局?( ) 。 A、FlowLayout 布局 B、BorderLayout 布局 C、CardLayout 布局 D、GridLayout 布局
30

《Java 语言程序设计基础教程》

31

解答:A 7、下列方法中,不属于 WindowListener 接口的是(D )。 A.windowOpened() B.windowClosed() C.windowActivated() D.mouseDragged() 8、 JAVA 中,容器被重新设置后, 哪种布局管理器的容器中的组件大小不随容器大小的 变化而改变(B) (A)CardLayout (B)FlowLayout (C)BorderLayout (D)GridLayout

6.2 填空题
1、Java 中 GUI 工具包有 java.awt 和 java.Swing。 2、通过调用方法 setLayout 可以改变当前容器的布局方式。 3、通过 add 方法向容器中添加组件。 4、图形用户界面的设计中有事件处理模型处理事件,在该模型中主要包括事件源、事 件对象和事件监听器 5、BorderLayout 布局管理器包括五个明显的区域:东、南、西、北、中。

6.3 简答题
1、请举例简要说明 JAVA 语言使用事件监听器进行事件处理的过程。 解答: 首先事件监听器(包含真正处理事件的代码)向事件源(与事件关联的控件,如按钮、 滚动条)注册,事件(敲击键盘,或点击鼠标)发生时,事件源向事件监听器发送一个事件 对象(如果在该事件源上注册了多个事件监听器,则向所有的监听器发送) 1) 对于某种类型的事件 XXXEvent, 要想接收并处理这类事件, 必须定义相应的事件监 听器类,该类需要实现与该事件相对应的接口 XXXListener; 2)事件源实例化以后,必须进行授权,注册该类事件的监听器,使用 addXXXListener(XXXListener ) 方法来注册监听器。 2、什么是布局管理器? 解答: Java 语言中,提供了布局管理器(LayoutManager)这个工具来管理组件在容器中的布 局,如:排列顺序,组件的大小、位置,当窗口移动或调整大小后组件如何变化等,而不使 用直接设置组件位置和大小的方式。 每个容器都有一个布局管理器, 不同的布局管理器使用不同算法和策略, 当容器需要对
31

32

《Java 语言程序设计基础教程》

某个组件进行定位或判断其大小尺寸时, 就会调用其对应的布局管理器。 容器可以通过选择 不同的布局管理器来决定布局。 3、JAVA 的事件处理模型主要涉及到哪 3 类对象,简单介绍其内容。 解答: 事件:用户对界面操作在 java 语言上的描述,以类的形式出现,例如键盘操作对应的 事件类是 KeyEvent。 事件源:事件发生的场所,通常就是各个组件,例如按钮 Button。 事件处理者:接收事件对象并对其进行处理的对象。 4、简述 JAVA 的组件 Component 类和容器 Container 类。 解答: Java 的图形用户界面的最基本组成部分是组件(Component) ,组件是一个以图形化的 方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。组件不能独立 地显示出来,必须将组件放在一定的容器中才可以显示出来。 容器 java.awt.Container 也是一个类,实际上是 Component 的子类,因此容器本身也是 一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。一个容器可以 容纳多个组件,并使它们成为一个整体。容器可以简化图形化界面的设计,以整体结构来布 置界面。

6.4 综合题
1、利用 AWT 控件编写一个求解一元二次方程根的程序,要求: (1)具有一元二次方程三个系数 a、b、c 的输入界面。 (2)显示 b*b-4*a*c 的值。 (3)显示求出的根。 2、编写一个应用程序,实现一个基于图形用户界面的加法运算器的功能,窗口中用 TextField 类来创建三个文本框,用 Label 类来创建“+”号,用 Button 类来创建按钮。并通 过实现 ActionListener 接口的监听器,完成如下功能:当用户点击按钮时,对前面两个文本 框的数进行相加,并将结果显示在第三个文本框中,如下图所示。

import?java.awt.*;? import?java.awt.event.*?;? public?class?TFMath{? ?
32

public?static?void?main(String[]?args){?

《Java 语言程序设计基础教程》

33

? ? }?

? }?

new?TFFrame()?;?

class?TFFrame?extends?Frame{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TextField?num1,num2,num3?;? TFFrame(){? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }? ? //private?class?MyMonitor?implements?ActionListener{??//利于封装,不 num1=new?TextField(10)?;? num2=new?TextField(10)?;? num3=new?TextField(15)?;? Label?lblPlus?=new?Label("+")?;? Button?btnEqual?=new??Button("=");? btnEqual.addActionListener(new?MyMonitor())?;? setLayout(new?FlowLayout())?;? add(num1);? add(lblPlus);? add(num2);? add(btnEqual);? add(num3);? pack();? setVisible(true);? ? ?

让别的类访问它? class?MyMonitor?implements?ActionListener{? ? ? ? ? ? }? } public?void?actionPerformed(ActionEvent?e){? ? int?n1?=?Integer.parseInt(num1.getText())?;? ????int?n2?=?Integer.parseInt(num2.getText())?;? ????num3.setText(""?+(n1+n2))?;? }?

3、编写一个主类为 TestGUI 的程序实现如下功能:给出一个窗口,带有一个文本框和 一个按钮,文本框输入用,用于输入字符。点击按钮后统计字符个数,并输出显示“你输入 字符的个数为: ” 。

33

34

《Java 语言程序设计基础教程》

import?java.awt.*;? import?java.awt.event.*;? //import?javax.swing.JOptionPane;? public?class?TestGUI?extends?Frame{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
34

private?TextField?tf?=?null;? private?Button?btn?=?null;? ? ? }? public?void?init()?{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //窗口关闭事件? addWindowListener(new?WindowAdapter()?{? ? ? ? public?void?windowClosing(WindowEvent?e)?{? ? }? System.exit(0);? public?static?void?main(String[]?args)?{? new?TestGUI().init();?

});? setLayout(new?FlowLayout());? tf?=?new?TextField(15);? btn?=?new?Button("计算");? //按键响应事件? btn.addActionListener(new?ActionListener()?{? ? ? ? ? ? public?void?actionPerformed(ActionEvent?e)?{? ? ? ? }? String?s?=?"你输入字符的个数为:"?+?tf.getText().length();? //JOptionPane.showMessageDialog(null,s);?? System.out.println(s);?

????????????????????????????????//弹窗显示结果?

});? add(tf);? add(btn);? setBounds(400,?300,?400,?300);??//设置窗体的位置和尺寸? setVisible(true);?

《Java 语言程序设计基础教程》

35

? }?

}?

4、编写一个主类为 TestKey 的程序实现如下功能:在窗口画出一个红色圆点,并可以 通过键盘方向键(左右上下)控制红色圆点圆点进行移动。涉及到 KeyEvent 对应监听器接 口的实现,paint()方法的重写,内部类等知识点。

import?java.awt.*?;? import?java.awt.event.*;? import?java.util.*;? public?class?TestKey?{? ? ? ? }? class?KeyFrame?extends?Frame{? ? ? ? ? ? ? ? ? ? ? ? ? int?framLocaX=?200?;? int?framLocaY=?200?;? //Point?p?=?new?Point(framLocaX+100,?framLocaY+100)?;? Point?p?=?new?Point(100,?100)?;? ? ? ? ? ? }? ? ? public?void?paint(Graphics?g){? g.setColor(Color.BLUE);?
35

public?static?void?main(String[]?args){? ? }? new?KeyFrame().launchFrame()?;?

public?void?launchFrame(){? setSize(400,400)?;? setLocation(framLocaX,framLocaY);? addKeyListener(new?MyKeyMonitor())?;? setVisible(true);?

36
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }? }

《Java 语言程序设计基础教程》

g.fillOval(p.x,?p.y,?10,?10);? class?MyKeyMonitor?extends?KeyAdapter{? public?void?keyPressed(KeyEvent?e){? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }? int?keyCode?=?e.getKeyCode()?;? /*if(keyCode?==KeyEvent.VK_UP){? ? System.out.println("UP")?;?? ? ? ? }*/? switch?(keyCode){? case?KeyEvent.VK_UP:? ? ? ? ? ? ? ? ? }? KeyFrame?f=?(KeyFrame)e.getSource()?;? f.repaint()?;? p.y?=?p.y‐10?;? break;? p.y?=?p.y+10?;? break;? p.x?=?p.x+10?;? break;? p.x?=?p.x‐10?;? break;? ? ? ? ?

case?KeyEvent.VK_DOWN:?

case?KeyEvent.VK_RIGHT:?

case?KeyEvent.VK_LEFT:?

7.1 单项选择题
1、 Java 语言具有许多优点和特点,下列选项中,哪个反映了 Java 程序并行机制的特 点?( ) A、安全性 B、多线程 C、跨平台 D、可移植 解答:B 2、 Runnable 接口中的抽象方法是( ) 。 A、start B、stop C、yield D、run
36

《Java 语言程序设计基础教程》

37

解答:D 3、 有以下程序段 (很难) class MyThread extends Thread { public static void main(String args[]) { MyThread t = new MyThread(); MyThread s = new MyThread(); t.start(); System.out.print("one."); s.start(); System.out.print("two."); } public void run() { System.out.print("Thread"); } } 则下面正确的选项是( ) A、编译失败 B、程序运行结果为:one.Threadtwo.Thread C、程序运行结果是:one.two.ThreaThread D、程序运行结果不确定 解答:D 4、 作为类中新线程的开始点,线程的执行是从下面哪个方法开始的。 ( A、public void start() B、public void run() C、public void int() D、public static void main(String args[]) 解答:A 5、Java 中用于给对象加“互斥锁”标记的关键字是。 ( ) A、synchronized B、serialize C、transient D、static 解答:A 6.以下哪个方法用于定义线程的执行体? ( C ) A、 start() B、init() C、run() D、synchronized() 7.以下哪个关键字可以用来为对象加互斥锁?( D ) A、transient B、static C、 serialize D、synchronized



37

38

《Java 语言程序设计基础教程》

7.2 简答题
1、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 解答: 多线程有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口。用 Thread 类的 子类创建线程对象,也就是从 Thread 类继承。实现 Runnable 接口,用 Thread 类直接创建 线程对象。 同步的实现方面有两种,分别是 synchronized,wait 与 notify。 2、 创建一个新线程的方法,可以使用下面哪 2 种 ( ) A、继承 java.lang.Thread 类,并且重载 run 方法。 B、继承 java.lang.Runnable 类,并且重载 start 方法。 C、实现 java.lang.thread 类,实现 run 方法。 D、实现 java.lang.Runnable 接口,实现 run 方法。 E、实现 java.lang.Thread 类,实现 start 方法。 解答:A,D 3、 线程在它的一个完整的生命周期中有哪 4 种状态? 解答 1: 线程在它的一个完整的生命周期中通常要经历如下的 4 种状态: 1. 创建状态(new Thread) 2. 可运行状态( Runnable ) 3. 不可运行状态(Not Runnable) 4. 死亡状态(Dead) 4、建立线程有哪两种方法? 解答: 多线程有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口。 5、调用 Thread 类的什么方法可以启动一个线程?直接调用 Thread 类的 run()方法可 以启动一个线程吗? 解答: 线程调用 start()方法将启动线程,从新建状态进入就绪队列排队。不能直接调用 Thread 类的 run()方法可以启动一个线程, 我们调用了 Thread 的 run()方法, 它的行为就会和普通的 方法调用一样。 6、Thread 类中的 start() 和 run() 方法有什么区别? 解答: 这个问题经常被问到,但还是能从此区分出面试者对 Java 线程模型的理解程度。start() 方法被用来启动新创建的线程,而且 start()内部调用了 run()方法,这和直接调用 run()方法 的效果不一样。当你调用 run()方法的时候,只会是在原来的线程中调用,没有新的线程启
38

《Java 语言程序设计基础教程》

39

动,start()方法才会启动新线程。 7、进程和线程的区别? 解答: 进程=执行中的程序,每个进程都有自己独立的一块内存、一组系统资源。每一个进程 的内部数据和状态都是完全独立的。 线程=进程中单个顺序的流控制,同类的多个线程共享一块内存、一组系统资源。线程 的运行开销很小。 一个线程是进程的一个执行流程,一个进程可以同时包含多个线程。 8、Thread.start()与 Thread.run()有什么区别? 解答: 通过调用 Thead 类的 start()方法来启动一个线程 ,使之进入就绪状态,当 cpu 分配时 间该线程时,由 JVM 调度执行 run()方法。 直接使用 run()方法叫做方法调用,不能启动线 程。 9、在一个对象上两个线程可以调用两个不同的同步实例方法吗? 解答: 不能,因为一个对象已经同步了实例方法,线程获取了对象的对象锁。所以只有执行完 该方法释放对象锁后才能执行其 它同步方法。 10、当一个同步方法已经执行,线程能够调用对象上的非同步实例方法吗? 解答: 可以,一个非同步方法总是可以被调用而不会有任何问题。 实际上, Java 没有为非同步 方法做任何检查,锁对象仅 仅在同步方法或者同步代码块中检查。如果一个方法没有声明 为同步,即使你在使用共享数据 Java 照样会调用,而不会做检查是否安全,所以在这种情 况下要特 别小心。一个方法是否声明为同步取决于临界区访问(critial section access),如果方 法不访问临界区(共享资源或者数据结构)就没必要声明为同步的。 11、wait 方法的作用? 解答: wait 方法用在 synchronized 方法或者 synchronized 块中。一般在判断语句中,如果某 条件被触发,让当前线程 wait 并释放对象的锁。此时可以让其他线程可以对用以对象调用 synchronized 方法。直到调用 notify 或者 notifyAll 后 wait 的线程才有可能执行。所以一般 wait 和 notify 是成对出现的。 12、启动一个线程是用 run()还是 start(),调用的时候有什么区别? 解答: 当然是 start()了,当调用线程的 start()方法的时候,线程就会进入到就绪状态。run()方 法是线程的执行入口,当线程从就绪状态进入到执行状态时首先要从 run()方法开始执行。 当然,我们也是可以直接通过线程对象调用该对象的 run()方法的,只是这只是一次普 通的调用,并没有启动任何一个线程。 当我们调用 start()方法时,是另外启动了一个线程去执行线程类的代码,并不影响主程 序的执行,但是调用 run()方法的时候要等待 run()方法内的代码执行完主程序才可以向下执 行
39

40

《Java 语言程序设计基础教程》

13、 sleep() 和 wait() 有什么区别? 解答: sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线 程, 但是监控状态依然保持, 到时后会自动恢复。 调用 sleep 不会释放对象锁。 wait 是 Object 类的方法, 对此对象调用 wait 方法导致本线程放弃对象锁, 进入等待此对象的等待锁定池, 只有针对此对象发出 notify 方法(或 notifyAll)后本线程才进入对象锁定池准备获得对象锁 进入运行状态。

7.3 综合题
15、在下面的代码区填入相应的代码,实现以下功能: 通过继承 Thread 类的子类 Thread1,来创建和启动一个线程 t1; 通过实现 Runnable 接口的具体类 Runner1,来创建和启动一个线程 t2; public class TestThread1{ public static void main(String[] args){ //创建和启动一个线程 t1,在下面写出相应代码 Thread1 t1 =new Thread1 () ; t1.start() ; //创建和启动一个线程 t2,在下面写出相应代码 Runner1 r1 =new Runner1() ; Thread t2 =new Thread(r1) ; t2.start() ; for(int i=0;i<100;i++){ System.out.println("Main Thread:......"+i) ; } } } class Runner1 implements Runnable{ public void run(){ for(int i=0;i<100;i++){ System.out.println("Runner1:......"+i) ; } } } class Thread1 extends Thread{ public void run(){
40

《Java 语言程序设计基础教程》

41

for(int i=0;i<100;i++){ System.out.println("Thread1:......"+i) ; } } } 16、现在有 T1 T2 T3 三个线程,怎样保证 T2 在 T1 执行完之后执行 T3 在 T2 执行完 之后执行。请在相应区域写出实现该功能的代码。 public class JoinDemo { public static void main(String[] args) { T1 t1=new T1("T1"); T2 t2=new T2("T2"); T3 t3=new T3("T3"); t1.start(); try { t1.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } t2.start(); try { t2.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } t3.start(); } } class T1 extends Thread{ private String name; public T1(String name) { this.name=name; } public void run() { for(int i=0;i<5;i++){ try { sleep(5); } catch (InterruptedException e) {
41

42

《Java 语言程序设计基础教程》

// TODO Auto-generated catch block e.printStackTrace(); } System.out.println(this.name+"循环"+i); } } } class T2 extends Thread{ private String name; public T2(String name) { this.name=name; } public void run() { for(int i=0;i<5;i++){ try { sleep(5); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(this.name+"循环"+i); } } } class T3 extends Thread{ private String name; public T3(String name) { this.name=name; } public void run() { for(int i=0;i<5;i++){ System.out.println(this.name+"循环"+i); } } }

42

《Java 语言程序设计基础教程》

43

8.1 单项选择题
1、 创建一个向文件“file.txt”追加内容的输出流对象的语句是( ) 。 A. OutputStream out=new FileOutputStream(“file.txt”); B. OutputStream out=new FileOutputStream(“file.txt”, “append”); C. FileOutputStream out=new FileOutputStream(“file.txt”, true); D. FileOutputStream out=new FileOutputStream(new file(“file.txt”)); 解答:C 2、下面哪个流类属于面向字符的输入流( ) A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader 答案:D 3、以下关于 File 类说法错误的是(D) A. 一个 File 对象代表了操作系统中的一个文件或者文件夹 B. 可以使用 File 对象创建和删除一个文件 C. 可以使用 File 对象创建和删除一个文件夹 D. 当一个 File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除 4、为了提高读写性能,可以采用什么流?( D) A InputStream B DataInputStream C OutputStream D BufferedInputStream 5、File 类型中定义了什么方法来判断一个文件是否存在?( D) A createNewFile B renameTo C delete D exists 6、File 类型中定义了什么方法来创建多级目录?( C) A createNewFile B exists C mkdirs D mkdir 7、 (Buffered 流,缓冲区)有下面代码 import java.io.*; public class TestBufferedWriter{ public static void main(String args[]) throws Exception{ FileWriter fw = new FileWriter(“test.txt”); BufferedWriter bw = new BufferedWriter(fw);
43

44

《Java 语言程序设计基础教程》

String str = “Hello World”; bw.write(str); } } 在处放入什么代码,能够使得 test.txt 文件被正确写入? A. bw.close() B. bw.flush(); C. fw.close();

8.2 填空题
1、对于 FileInputStream 来说,从方向上来分,它是输入流,从数据单位上分,它是字 节流。 2、创建 FileOutputStream 对象时,如果对应的文件在硬盘上不存在,则会自动创建; 如果对应的文件在硬盘上已经存在,则覆盖

8.3 简答题
1、 java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承, 请说出 他们分别是哪些类? 解答: 字节输入流:InputStream,字节输出流:OutputStream 字符输入流:Reader,字符输出流:Writer 2、什么是 java 序列化,如何实现 java 序列化? 解答: Java 对象的序列化指将一个 java 对象写入 OI 流中,与此对应的是,对象的反序列化则 从 IO 流中恢复该 java 对象。 如果要让某个对象支持序列化机制, 则必须让它的类是可序列化的, 为了让某个类是可 序列化的,该类必须实现 Serializable 接口或 Externalizable 接口。

9.1 单项选择题
1、 为了捕获一个异常,代码必须放在下面( )语句块中。 A、try 块 B、catch 块 C、throws 块 D、finally 块 解答:A 3、 下列常见的系统定义的异常中,哪个是输入、输出异常?( A、ClassNotFoundException B、IOException C、FileNotFoundException
44



《Java 语言程序设计基础教程》

45

D、UnknownHostException 解答:B 4、 在代码中,使用 catch(Exception e)的好处是 ( ) A、只会捕获个别类型的异常 B、捕获 try 块中产生的所有类型的异常 C、忽略一些异常 D、执行一些程序 解答:B(太难) 6、 异常包含下列那一个内容? ( ) A、程序中的语法错误 B、程序的编译错误 C、程序执行过程中遇到的事先没有预料到的情况 D、程序事先定义好的可能出现的意外情况 解答:C(太难) 7、getCustomerInfo()方法如下,try 中可以捕获三种类型的异常,如果在该方法运行中 产生了一个 IOException,将会输出什么结果(A) public void getCustomerInfo() { try { // do something that may cause an Exception } catch (java.io.FileNotFoundException ex) { System.out.print("FileNotFoundException!"); } catch (java.io.IOException ex) { System.out.print("IOException!"); } catch (java.lang.Exception ex) { System.out.print("Exception!"); } } A IOException! B IOException!Exception! C FileNotFoundException!IOException! D FileNotFoundException!IOException!Exception! 8、有如下代码段: 1) 2) { if(unsafe()){//do something…} 3) else if(safe()){//do the other…} 4) } 其中,方法 unsafe() 将抛出 IOException, 请问可将以下哪项填入第 1 行?( D ) A、 public IOException methodName() B、 public void methodName() C、public void methodName() throw IOException D、public void methodName() throws
45

46

《Java 语言程序设计基础教程》

IOException 9、java 中用来抛出异常的关键字是 (C) A、try B、catch C、throw D、finally 10、java 中关于异常,下列说法正确的是 (A) A、异常是一种对象 B、一旦程序运行,异常将被创建 C、为了保证程序运行速度,要尽量避免异常控制 D、以上说法都不对 11、 (A)类是所有异常类的父类。 A、Throwable B、Error C、Exception D、AWTError 12、对于 catch 子句的排列,下列哪种是正确的(B ) A、父类在先,子类在后 B、子类在先,父类在后 C、有继承关系的异常不能在同一个 try 程序段内 D、先有子类,其他如何排列都无关 13、在异常处理中,如释放资源、关闭文件、关闭数据库等由(C )来完成。 A、try 子句 B、catch 子句 C、finally 子句 D、throw 子句 14、当方法遇到异常又不知如何处理时,下列哪种说法是正确的(C ) A、捕获异常 B、抛出异常 C、声明抛出异常 D、嵌套异常 15、一个异常将终止( A) A、整个程序 B、只终止抛出异常的方法 C、产生异常的 try 块 D、上面的说法都不对

9.2 填空题
1、系统定义的运行异常都可以由系统自动抛出,而用户定义的异常应使用 throw 语句 抛出。 2、Throwable 类是 Java 异常类的根类。 3、抛出自定义异常用 throws 语句,在方法中抛出异常采用 throw 语句。 4、异常就是在程序的运行过程中所发生的错误 5、捕获异常的统一出口通过 finally 语句实现 6、java 语言的类库中提供了一个 Throwable 类,所有的异常都必须是它的实例或它子 类的实例 7、Exception 包括运行时异常和非运行时异常。 8、catch 子句都带一个参数,该参数是某个异常的类及其变量名,指明它所能够捕获的 异常类型。catch 用该参数去与 _异常对象的类进行匹配。 9、Java 语言中有两种异常处理机制:捕获异常和声明抛弃异常。

46

《Java 语言程序设计基础教程》

47

9.3 简答题
1、 什么是 Error 异常类,什么是 Exception 异常类,两者在处理上有什么区别? 解答: Java 中的异常类可分为两大类: Error 和 Exception。Error 包括动态链接失败,虚拟机 错误等,通常 Java 程序不应该捕获这类异常,也不会抛弃这种异常。 Exception 包括运行 时异常和非运行时异常。 Error(错误)表示系统级的错误和程序不必处理的异常,是 java 运行环境中的内部错误 或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行 外别无选择。 Exception(违例)表示需要捕捉或者需要程序进行处理的异常, 它处理的是因为程序设计 的瑕疵而引起的问题或者外部环境造成的异常,是程序必须处理的。 2、 Exception 异常类包括运行时异常和非运行时异常,简单介绍两者内容。 解答: 继承于 RuntimeException 的类都属于运行时异常,例如算术异常(除零错) 、数组下标 越界异常等等。由于这些异常产生的位置是未知的,Java 编译器允许程序员在程序中不对 它们做出处理。 除了运行时异常之外的其他由 Exception 继承来的异常类都是非运行时的异常,例如 FileNotFoundException(文件未找到异常) 。Java 编译器要求在程序中必须处理这种异常, 捕获异常或者声明抛弃异常。 3、简述 Java 中异常处理的机制? 解答: 首先 Java 的异常是面向对象的。一个 Java 的 Exception 是一个描述异常情 况的对象.当出现异常情况时, 一个 Exception 对象就产生了,并放到异常的成员函数里。 Java 的异常处理是通过 5 个关键词来实现的:try,catch,throw,throws 和 finally。 1.异常处理:在 Java 语言的错误处理结构由 try,catch,finally 三个块组成。 其中 try 块存放将可能发生异常的 Java 语言,并管理相关的异常指针;catch 块紧跟在 try 块后面,用来激发被捕获的异常; finally 块包含清除程序没有释放的资源,句柄等。不管 try 块中的代码如何退出,都将 执行 finally 块。 2.抛出异常:Java 语言可以不在方法中直接捕获,而用 throw 语句将异常抛给上层的调 用者。 Throw 语句就是来明确地抛出一个异常;首先你必需得到一个 Throwable 的实例句柄, 通过参数传到 catch 中,或者采用 new 操作符来创建一个。

47

48

《Java 语言程序设计基础教程》

9.4 综合题
1、 编写一个异常类 MyException,再编写一个类 Student,该类有一个产生异常的方法 public void speak(int m) throws MyException,要求参数 m 的值大于 1000 时,方法抛出一个 MyException 对象。最后编写主类,在主类的 main 方法中用 Student 创建一个对象,让该对 象调用 speak 方法。 import?java.util.Scanner;? class?MyException?extends?Exception?? {? ? String?message;? ? MyException(int?m)? ? {? ? ? message?=?"the?number?"?+?m?+?"?great?than?1000";? ? }? ? public?String?toString()? ? {? ? ? return?message;? ? }? }? class?Student? {? ? public?void?speak(int?m)?throws?MyException? ? {? ? ? if(m?>?1000)? ? ? {? ? ? ? MyException?ex?=?new?MyException(m);? ? ? ? throw?ex;? ? ? }? ? ? else? ? ? {? ? ? ? System.out.println("the?number?is:?"?+?m);? ? ? }? ? }? };? class?TestException1{? ? public?static?void?main(String?args[])? ? {? ? ? Student?s?=?new?Student();?
48

《Java 语言程序设计基础教程》

49

? ? ? ? ? ? ? ? ? ? };?

? ? ? ? ? ? ? ? ? }?

try? {? ? ? ? {? ? }? System.out.println(mye.toString());? //System.out.print("Please?input?number:?");? //Scanner?num?=?new?Scanner(System.in);? s.speak(10000);?

}catch(MyException?mye)?

49


JAVA程序设计期末考试题(多套含答案).doc

JAVA程序设计期末考试题(多套含答案) - 《JAVA 程序设计》期末考试试题 (五) 一、 单选题 1、当某一线程正处于休眠状态,而另一个线程用 Thread 类中的 ...

3《JAVA程序设计》期末考试复习资料.pdf

3《JAVA程序设计期末考试复习资料 - 《JAVA 程序设计期末考试复习资料 一、填空题 1.定义类的保留字是( 2.Socket 通常也称为 ( 3.线程的优先级在( 1 ...

JAVA程序设计期末考试复习题.doc

JAVA程序设计期末考试复习题 - JAVA 程序设计期末考试复习题(仅供参考)

Java程序设计期末复习(含答案).doc

Java程序设计期末复习(含答案) - Java 程序设计期末复习 一 填空题

《JAVA语言程序设计》期末考试试题及答案.doc

JAVA语言程序设计期末考试试题及答案 - 《JAVA 语言程序设计期末考试试题及答案 (应考必备题库) 一、单选择题 1、编译 Java Application 源程序文件将产生...

《JAVA程序设计》期末考试试题汇总及答案.pdf

JAVA程序设计期末考试试题汇总及答案 - 一、单选择题 1、编译 Java

《JAVA程序设计》期末考试试题_(.doc

JAVA程序设计期末考试试题_( - 《JAVA 程序设计期末考试试题 (

《JAVA语言程序设计》期末考试复习资料.doc

JAVA语言程序设计期末考试复习资料 - 《JAVA 语言程序设计》 期末考试试题及答案 1 (应考 必备题库) 一、单选择题 1、编译 Java Application 源程序文件将...

《JAVA程序设计》期末考试试题.doc

JAVA程序设计期末考试试题 - JAVA 期末考试试题 一、 单选题 1、

《JAVA程序设计》期末复习题.doc

JAVA程序设计期末复习题 - 《JAVA 程序设计期末复习题 A. B

大学《JAVA语言程序设计》期末考试试题及答案.doc

JAVA 语言程序设计期末考试试题及答案 3(应考 必备题库) 一、单项选择题 1、如下哪个是 Java 中的标识符() A、public B、super C、3number D、width ...

《java程序设计》期末复习题.doc

java程序设计期末复习题 - 文档均来自网络,如有侵权请联系我删除文档... 《java程序设计期末复习题_IT认证_资格考试/认证_教育专区。文档均来自网络,如有侵权...

2017年JAVA程序设计期末考试题(多套含答案).pdf

2017年JAVA程序设计期末考试题(多套含答案)_从业资格考试_资格考试/认证_教育专区。2017年,最新,期末,考试,试卷,试题,答案JAVA程序设计 ...

《Java程序设计》开卷考试期末复习题.doc

Java程序设计》开卷考试期末复习题 - 一、单选题 1、关于可以独立运行的

Java程序设计期末考试试题.doc

Java程序设计期末考试试题 - Java 程序设计期末考试试题、试卷、习题 A

Java程序设计期末考试题.pdf

Java程序设计期末考试题 - Java 程序设计期末考试题 一、选择题 下列说

JAVA程序设计期末考试复习题.doc

JAVA程序设计期末考试复习题 - JAVA 程序设计期末考试复习题(仅供参考)

《JAVA程序设计》期末考试试题汇总及答案.doc

JAVA程序设计期末考试试题汇总及答案_IT/计算机_专业资料。《JAVA程序设计》...(3) 编写 Bird 类和 Fish 类的测试程序,并调用其中的 run()方法 解答: ...

大学《JAVA语言程序设计》期末考试试题及答案.pdf

JAVA 语言程序设计期末考试试题及答案 3(应考 必备题库)一、单项选择题 ...(3) 编写 Bird 类和 Fish 类的测试程序,并调用其中的 run()方法 解答: ...

Java高级程序设计期末复习题_图文.pdf

Java高级程序设计期末复习题 - Java高级程序设计第二学期 期末复习题 1、 判断题 1. java.io.Seriablizable是对象可以序列化接口。(√) 2. java.awt包...