《JAVA语言》作业集答案

上传人:hao****021 文档编号:159347723 上传时间:2022-10-08 格式:DOC 页数:57 大小:276.51KB
收藏 版权申诉 举报 下载
《JAVA语言》作业集答案_第1页
第1页 / 共57页
《JAVA语言》作业集答案_第2页
第2页 / 共57页
《JAVA语言》作业集答案_第3页
第3页 / 共57页
资源描述:

《《JAVA语言》作业集答案》由会员分享,可在线阅读,更多相关《《JAVA语言》作业集答案(57页珍藏版)》请在装配图网上搜索。

1、 参考答案 第一章 判断题答案 1) 难度:容易;答案:错误;知识点:“//“表示单行注释,多行注释以“/*”开始并以“*/”结束。 2) 难度:容易;答案:错误;知识点:方法不仅在命令窗口中显示(或打印)一行文字,而且自动将光标位置移到下一行。 3) 难度:难;答案:正确;知识点:System类是java .lang包的一部分,对于每一个Java。 4) 难度:容易;答案:正确;知识点:Java中变量的声明。 5) 难度:容易;答案:错误;知识点:注释在程序执行时不会造成任何操作的执行,她们仅用于将程序文本化并提高可读性。 6) 难度:容易;答案:错误;知识点:Java是对

2、大小写字母敏感的,所以这些变量不相同。 7) 难度:容易;答案:正确;知识点:Java应用程序自动从main方法开始执行 选择题答案 1) 难度:容易;答案:D;知识点:面向对象程序设计方法的三大主要优点。 2) 难度:适中;答案:D.public class Welcome;知识点:Java中的所有类名以一个大写字母开头,但类名不能以数字开头并且不含空格。 3) 难度:容易;答案:D;知识点:单条语句通过使用换行符可以显示多行信息。 4) 难度:适中;答案:D;知识点:方法main的定义。 5) 难度:容易;答案:D;知识点:如果在一个显示图形用户界面的应用程序中调用Sys

3、tem .exit,将使得程序不能正常结束。 6) 难度:容易;答案:C;知识点:每一个Java applet必须继承JApplet或类Applet。 7) 难度:适中;答案:D;知识点:init,start,paint方法必须按这一顺序从appletviewer或浏览器里被调用。 8) 难度:适中;答案:C;知识点:使用Graphics类的drawLine方法来画线。 9) 难度:适中;答案:B;知识点:*号表示java.swing包的任何类都可以使用,如果使用类的完整名称,从而省略import语句。 10) 难度:容易;答案:C;知识点:第3和第4个参数是非负整数,以像素为单位,

4、分别代表矩形的宽度和高度,该语句从坐标(15,10)处画一个270像素宽,20像素高的矩形。 11) 难度:容易;答案:D;知识点:当编译Java程序时,每个类都将被分别编译成不同的文件,每个文件名都与所对应的类名相同,并以扩展名.class结束。 简述题答案 1) Java和C/C++的差别主要表现在如下方面: ● Java中对内存的分配是动态的,程序运行中,Java系统自动对内存进行扫描,对长期不用的内存空间作为“垃圾”进行收集,使得系统资源得到更充分利用。按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了由于内存管理方面的差错而导致系统出问题

5、。 ● Java不在所有类之外定义全局变量.而是在某个类中定义—种公用静态的变量来完成全局变量的功能。 ● Java不用Goto语句,而是用try-catch—finally异常处理语句来代替Goto语句处理出错的功能。 ● Java不支持头文件,而C和C++语言中都用头文件来定义类的原型、全局变量、库函数等,这种采用头文件的结构使得系统的运行维护相当繁杂。 ● Java不支持宏定义,而是使用关键字final来定义常量,在C++中则采用宏定义来实现常量定义,这不利于程序的可读性。 ● Java对每种数据类型都分配固定长度。比如,在Java中,int类型总是32位的,而在C和C++中,

6、对于不同的平台,同一个数据类型分配不同的字节数,同样是int类型,在PC机中为二字节即l6位,而在VAX—11中,则为32位。这使C语言造成不可移植性,而Java则具有跨平台性。 ● 类型转换不同。在C和C++中,可以通过指针进行任意的类型转换,常常带来不安全性,而Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。 ● 结构和联合的处理。C和C++中的结构和联合所有成员均为公有,这就带来了安全性问题,而Java中根本就不包含结构和联合,所有的内容都封装在类里面。 ● Java不再使用指针。 2) Java的技术特点:简明的语法结构、平台独立性、面向对象特征、面

7、向网络环境、动态性、安全性、稳定性、多线程、类库丰富。 3) 包括Application类型和Applet类型两种。 第二章 判断题答案 1) 难度:容易;答案:错误;知识点:“//“表示单行注释,多行注释以“/*”开始并以“*/”结束。 2) 难度:容易;答案:错误;知识点:方法不仅在命令窗口中显示(或打印)一行文字,而且自动将光标位置移到下一行。 3) 难度:难;答案:正确;知识点:System类是java .lang包的一部分,对于每一个Java。 4) 难度:容易;答案:正确;知识点:Java中变量的声明。 5) 难度:容易;答案:错误;知识点:注释在程序执行时不会

8、造成任何操作的执行,她们仅用于将程序文本化并提高可读性。 6) 难度:容易;答案:错误;知识点:Java是对大小写字母敏感的,所以这些变量不相同。 7) 难度:容易;答案:错误;知识点:模运算操作符在Java中也可用非整数。 8) 难度:容易;答案:错误;知识点:运算符*,/和%是在同一优先级上,而运算符+和- 在另一个优先级。 9) 难度:容易;答案:错误;知识点:方法Integer.parseInt将一String转变成整数。 10) 难度:容易;答案:正确;知识点:Java应用程序自动从main方法开始执行 11) 难度:容易;答案:错误;知识点:default可缺省,若不

9、需要缺省的操作,就可以不写default项。 12) 难度:容易;答案:错误;知识点:break语句用于退出default结构,当default作为switch结构的最后一种情况时,可以不写break语句。 13) 难度:适中;答案:错误;知识点:使用&&运算符的表达式,只有两个操作数都为真时该表达式才为真,整数100不能作为逻辑类型数值使用。 14) 难度:容易;答案:正确;知识点:或(||)运算符的使用。 15) 难度:容易;答案:错误;知识点:if结构仅选择或忽略某一个动作,if/else要在不同的动作之间做选择。 16) 难度:容易;答案:正确;知识点:逻辑与的使用。

10、 17) 难度:容易;答案:错误;知识点:应该使用逻辑或运算符||。 18) 难度:适中;答案:错误;知识点:布尔逻辑与和布尔逻辑或运算符的工作方式与逻辑与和逻辑或运算符除了短路计值一点外完全相同。 19) 难度:容易;答案:错误;知识点:还有两种组合方式。 20) 难度:适中;答案:正确;知识点:结构化程序设计的优点。 21) 难度:容易;答案:错误;知识点:下标用于指出数组中某个元素的数字。 22) 难度:容易;答案:正确;知识点:把数组中元素按某种顺序排列的过程叫做排序。 23) 难度:容易;答案:错误;知识点:确定数组中是否含有某个关键字的过程叫做查找。 24)

11、 难度:容易;答案:错误;知识点:一个数组只能存放同一类型的数值。 25) 难度:容易;答案:错误;知识点:一个数组下标应为整数或整数表达式。 26) 难度:容易;答案:错误;知识点:因为数组的单个基本数据类型元素以值调用方式传递。如果将整个数组传递给方法,数组元素的任何变化都将反映在原来数组上。另外,如数组单个元素是类的对象,传递单个元素也以引用调用形式传递给方法,对象的改变将反映在原数组元素上。 27) 难度:容易;答案:正确;知识点:数组的使用。 28) 难度:容易;答案:正确;知识点:数组的概念。 29) 难度:适中;答案:错误;知识点:在数组声明中可以用等号及一个逗号分隔的

12、初始值表初始化数组元素,该数组大小由初始值表中的数据个数决定。 30) 难度:容易;答案:错误;知识点:将一个数组传递给一个方法,应使用不加方括号的数组名。 31) 难度:容易;答案:错误;知识点:用运算符“= =”比较字符串对象,实际上是比较并确定它们是否内存中的同一个对象。 32) 难度:容易;答案:错误;知识点:字符串对象是常量,在创建后不能修改。 33) 难度:容易;答案:错误;知识点:String类的charAt方法返回指定位置上的字符。 34) 难度:容易;答案:正确;知识点:不仅如此,如果调用compareTo的字符串比作为参数的字符串小,则返回一个负数;如果调用com

13、pareTo的字符串比作为参数的字符串大时,则返回一个正数。 35) 难度:适中;答案:正确;知识点:运算符“==”用于比较基本类型的数据时,如果两个值相同则返回true,并且在比较引用时,如果两个引用指向内存中同一个对象,则返回true。 36) 难度:适中;答案:错误;知识点:indexOf方法是String类的方法。 37) 难度:容易;答案:正确;知识点:String类的substring方法的使用。 38) 难度:适中;答案:错误;知识点:String类的replace方法不仅返回一个新的字符串对象,而且该对象中原字符串所以的由第1个字符参数指定的字符都被第2个字符参量替换。

14、 39) 难度:容易;答案:正确;知识点:String类的valueOf方法的使用。 40) 难度:适中;答案:正确;知识点:StringTokenizer类的hasMoreTokens方法的使用。 选择题答案 1) 难度:容易;答案:C;知识点:Java的标识符可以由字母、数字、下划线和美元符号组成。 2) 难度:容易;答案:A;知识点:所有的程序均可以用顺序结构、选择结构、循环结构三种类型控制结构编写。 3) 难度:容易;答案:D;知识点:当条件为真和条件为假时,if/else控制结构可以执行不同的动作。 4) 难度:容易;答案:C;知识点:标记值的使用。 5) 难度:容易

15、;答案:D;知识点:赋值运算符应该是+ =。 6) 难度:适中;答案:C;知识点:while循环的使用。 7) 难度:适中;答案:C;知识点:变量k应该在使用前要被初始化。 8) 难度:适中;答案:C;知识点:&是布尔运算与,而&&是逻辑运算与。 9) 难度:容易;答案:AB;知识点:布尔变量不能被赋予数值。 10) 难度:容易;答案:A;知识点:如果x小于0,则x必须小于10。 11) 难度:容易;答案:ABC;知识点:没有break在case 1和case 0语句的后面。 12) 难度:容易;答案:B;知识点:线性表和表可以存储在数组中。 13) 难度:容易;答案:AB;知

16、识点:数组元素之所以相关,是因为它们具有相同的名字和类型。 14) 难度:容易;答案:B;知识点:二维数组使用双下标。 15) 难度:容易;答案:C;知识点:静态数组arr已经被初始化为0。 16) 难度:容易;答案:A;知识点:数组arr不是静态数组,在方法main()中没有被直接访问。 17) 难度:容易;答案:C;知识点:不允许在数组名后面的括号内指定数组元素的个数。 18) 难度:适中;答案:CD;知识点:“”表示数组元素为空。 19) 难度:适中;答案:D;知识点:一旦数组被创建则它的元素就被初始化为0 20) 难度:适中;答案:ABC;知识点:可以用初始值来创建数组p

17、,选项D书写不合法。 21) 难度:适中;答案:CD;知识点:数组t的长度位,它的下标是0和1,则使用t[2]和t[3]是不对的。 22) 难度:容易;答案:BD;知识点:字符串不是数组,不能使用s[3];“-”操作符在字符串中不能使用。 23) 难度:适中;答案:AD;知识点:s和t不是相同的引用,而在使用==比较引用时,如果两个引用指向内存中的同一个对象,则结果为真。 24) 难度:容易;答案:AD;知识点:s是字符串不是数组,因此B错误;C错误是由于length后要加括号。 25) 难度:适中;答案:E;知识点:类Demo没有被初始化,在15行对它的引用导致了一个错误。 26

18、) 难度:适中;答案:B;知识点:由于str=”world”语句,str的引用为world,而不是hello。 27) 难度:容易;答案:AB;知识点:每个数组元素在初始化之前都为null。 28) 难度:容易;答案:D;知识点:数组的正确初始化。 29) 难度:容易;答案:DF;知识点:append方法是StringBuffer类的方法,而contcat方法是String类的方法。 30) 难度:适中;答案:A;知识点:“+”操作符的使用。 31) 难度:适中;答案:C;知识点:“==”操作符的使用。 简述题答案 1) 难度:容易 答案:Java的基本数据类型包括:布尔型、

19、字节型、字符型、短整型、整型、长整型、浮点型、双精度型。Int型所能表达的最大数据为2147483647,最小数据为-2147482648。 知识点:Java的数据类型。 2) 难度:适中 答案:(1)Java的算术运算符有: 双目运算符 +、-、*、/、%; 单目运算符 + +、- -、-。 (2)关系运算符 = =、!=、>、<、>=、<=。 (3)逻辑运算符 &、|、!、^、&&、||。 (4)位运算符 ~、>>、<<、>>>。 (5)赋值运算符 + =、- =、* =、/ =、% =、&=、|=、^=、<ó、>=、<<<=。 (6)三目运算符 ?、:。 3) 难度

20、:适中 答案:(1) - - a % b+ + = 2 (2) ( a >= 1 && a <= 12 ? a : b ) = 3 (3) f ^ ( a > b ) = false (4) ( - - a )< < a = 8 知识点:Java中算术表达式的运算符优先原则。 4) 难度:适中 答案:① sum = 0 for ( count = 1;count < = 99;count + = 2 ) sum + = count; ② Math .pow( 2.5 ,3 ) ③ x = 1; while ( x < = 20 ){ System .out .prin

21、t ( x ) ; if ( x % 5 = = 0 ) System .out .println ( ) ; else System .out .print (‘ \ t ‘ ) ; + + x;} ④ for ( x = 1;x < = 20;x + + ){ System .out .print ( x ) ; if ( x % 5 = = 0 ) System .out .println ( ) ; else System .out .print (‘ \ t ‘ ) ;} 或写成 for ( x = 1;x < = 20;x + + ){ if ( x %

22、 5 = = 0 ) System .out .println ( x ) ; else System .out .print ( x +‘ \ t ‘ ) ;} 知识点:使用for结构、while结构。 5) 难度:适中 答案:①错误:while结构头部的分号将导致无限循环,此外,大括号也没有匹配。 改正:将分号“{”代替,或去掉“;”和“}”。 ②错误:使用一个浮点数来控制一个循环结构可能达不到控制循环的目的,因实数的表示不精确。 改正:使用一个整数,并执行合适的计算以得到所需的值。 for ( y = 1;y ! = 10;y + + ) System .out .

23、println ( ( float ) y / 10 ) ; ③错误:在第一case的语句组中,漏了break语句。 改正:在第一case的最后加上break语句。不过,如果希望case 2: 中的语句在每次case 1: 语句执行后都执行,这就不算是一个错误。 ④错误:while的循环条件中的关系运算符有误。 改正:用< =代替<,或用11代替10。 ⑤错误:while循环缺少有括号(})。 改正:在语句 + + = C之后加上右括号())。 ⑥错误:else后的分号将导致逻辑错误,其后的输出语句总是回被执行。 改正:删除else后的分号。 知识点;对各循环结构的使用。

24、6) 难度:适中 答案:结构化程序设计有顺序、分支、循环三种基本流程。Java中的分支语句包括if语句、switch语句、;循环语句包括while语句、do-while语句、for语句;其他如对象、变量定义语句、赋值语句、方法调用语句等都是顺序语句。 知识点:结构化程序设计的三种基本流程。 7) 难度:适中 答案:在循环中使用break语句,将使循环终止,流程从break语句处跳转到break语句所在的循环外面的第一个语句继续执行。在循环中使用continue语句,将提前结束本轮循环,流程跳转到continue语句所在的循环的第一个语句继续执行。在循环中使用return语句,将终止当前

25、方法调用,同时终止循环,使流程返回到调用语句的下一个语句执行。 8) 难度:容易 答案:① final int ARRAY_SIZE = 10; ② float fractions[ ] = new float[ARRAY_SIZE]; ③ fractions[3]; ④ fractions[4]; ⑤ fractions[9] = 1.667; ⑥ fractions[6] = 3.333 ⑦ float total = 0; for( int x = 0;x < fractions .length;x + + ) total + = fractions[x]; 知识点

26、:操作数组的基本方法。 9) 难度:适中 答案:① int table[ ][ ] = new int[ARRAY_SIZE][ARRAY_SIZE]; ② for( int x = 0;x < table .length;x + + ) for( int y = 0;y < table .length;y + + ) table[x][y] = x + y; 知识点:操作数组的基本方法。 10) 难度:适中 答案:①错误。如果一个final变量已被初始化,那么就不能修改该final变量的值。 ②错误:超界限用数组元素(b[10])。 改正:把运算符< =改写<。 ③错误

27、:数组下标写法有误。 改正:改成a[1][1] = 5。 知识点:对一维和二维数组的操作。 11) 难度:适中 答案:向量是类似于数组的顺序存储的数据结构,不同之处是向量中的每个元素都是对象,向量中还封装了一些常用的数据处理功能,因此向量是允许不同类型元素共存的变长数组。 下面的情况下适用向量: ①需要处理的对象数目不定;序列中的元素都是对象,或可以表率为对象。 ②需要将不同类的对象组合成一个数据序列。 ③需要做频繁的对象序列中元素的插入和删除。 ④经常需要定位序列中的对象或其他的查找操作。 ⑤需要在不同的类之间传递大量的数据。 ⑥ Vector类的方法 相对于数组要多一

28、些,但是使用这个类也有一定的局限性,例如其中的对象不能是简单数据类型等。 一般在下面的情况下,使用数组比较合适: ①序列中的元素是简单数据类型的数据。 ②序列中元素的数目相对可以固定,插入、删除和查找操作比较少。 知识点:向量与数组的区别 12) 难度:适中 答案:① s1.equal( s2 ); ② s1 + = s2; ③ s1 .length( ); 13) 难度:适中 答案:常量的数值或数据一经建立,在程序的整个运行过程中都不会改变。变量的数值或数据在程序的运行过程中可以改变。下面的语句定义了一个字符变量:     char ch = ‘a’; 变量ch的初始

29、数值为‘a’,如果执行了下面的赋值语句: ch = ’b’;则ch的数值改变为’b’。 知识点:字符变量和字符常量的区别。 14) 难度:适中 答案:字符串是字符的序列。Java程序中的字符串分为String类表示的字符串常量和StringBuffer类表示的字符串变量两大类。 15) 难度:适中 答案:String类的concat( )方法返回连接后的长字符串,String类自身并不改变。StringBuffer类的append( )方法在StringBuffer对象后面添加一个字符串,改变了原有的字符串。 知识点:String类的concat( )方法与StringBuffe

30、r类的append( )方法之间的区别。 第三章 判断题答案 1) 难度:容易;答案:错误;知识点:设置方法用于给类的private实例变量赋值。 2) 难度:容易;答案:正确;知识点:对变量和方法的定义。 3) 难度:容易;答案:错误;知识点:在类定义中,成员访问权限修饰符可以多次出现,而且出现的次序不限。 4) 难度:容易;答案:正确;知识点:点运算符的使用。 5) 难度:适中;答案:错误;知识点:声明为private的类成员只能被次类中的方法访问。 6) 难度:容易;答案:错误;知识点:类的实例变量一般设为private。 7) 难度:容易;答案:正确;知识点:关键字e

31、xtends的使用。 8) 难度:容易;答案:错误;知识点:声明为public的类成员可以被此类作用域中的任何对象访问。 9) 难度:容易;答案:正确;知识点:new操作符的使用。 10) 难度:适中;答案:错误;知识点:static实例变量代表类范围的信息。 11) 难度:容易;答案:错误;知识点:Java不支持多重继承。 12) 难度:容易;答案:正确;知识点:protected类型的实例变量或方法只能由声明该变量或方法的类本身及其子类访问。 13) 难度:容易;答案:正确;知识点:超类的继承性。 14) 难度:容易;答案:正确;知识点:超类的概念。 15) 难度:适中;答

32、案:错误;知识点:如果没有显式调用超类的构造函数,Java会自动调用超类的缺省构造函数(隐式调用)。 16) 难度:容易;答案:正确;知识点:覆盖的概念。 17) 难度:适中;答案:错误;知识点:子类不能继承超类的构造函数,然而子类构造函数可以通过super引用调用超类的构造函数。 18) 难度:容易;答案:正确;知识点:final类不能被继承,一个final类中的所有方法都是隐式的fianl。 19) 难度:容易;答案:错误;知识点: 抽象类不需要实例化对象的类,相反,对象能被实例化的类叫做具体类。 20) 难度:容易;答案:正确;知识点:内部类的概念。 选择题答案 1) 难度

33、:容易;答案:D;知识点:OOP将数据和方法封装进一个称为对象的包,对象的数据和方法被紧密地联系在一起。这对对象信息隐藏有好处。 2) 难度:容易;答案:B;知识点:对象之间的基本关系是:“包含”、“继承”、“关联”。 3) 难度:适中;答案:B;知识点:“清华大学”不是类,而是“大学“类的实例对象,它们之间没有继承的关系。 4) 难度:适中;答案:A;知识点:静态方法的调用。 5) 难度:容易;答案:AB;知识点:在Java中,ture和false都是小写,并且没有sizeof这样的关键字。 6) 难度: 适中;答案:C;知识点:this引用的使用。 7) 难度:适中;答案:B;

34、知识点:构造函数是一个特殊的方法,用于对类的实例变量进行初始化。 8) 难度:适中;答案:ACD;知识点:声明类时用关键字static。 9) 难度:适中;答案:C;知识点:将变量m改成static int m是因为方法fun()是静态的。 10) 难度:容易;答案:D;知识点:方法main()只能返回一个空值。 11) 难度:容易;答案:C;知识点:++操作符的使用。 12) 难度:适中;答案:B;知识点:数组初始化后,其所有元素的值为0。 13) 难度:容易;答案:B;知识点:关键字final表明一个对象或变量在初始化后不能修改。 14) 难度:适中;答案:C;知识点:声明

35、为static的方法不能访问非static类成员。 15) 难度:容易;答案:B. private;知识点:子类不能直接访问它的超类的private成员。 16) 难度:适中;答案:C. protected;知识点:finalize方法的调用。 17) 难度:适中;答案:D. static private;知识点:final方法的定义永远不能改变,编译器按这种方式优化程序。 18) 难度:容易;答案:B;知识点:继承性使软件复用成为可能。 19) 难度:适中;答案:B;知识点:子类的概念。 20) 难度:适中;答案:A;知识点:超类的概念。 21) 难度:适中;答案:ABCD;知

36、识点:四种成员访问形式。 22) 难度:容易;答案:C;知识点:子类和超类的概念。 23) 难度:容易;答案:D;知识点:使用多态性减少了switch逻辑的使用。 24) 难度:容易;答案:B;知识点:动态绑定就是在运行时才确定调用那一个方法。 简述题答案 1) 难度:容易 答案:实体是现实世界中的物理存在,对象是计算机系统对现实实体的映射和体现,类是所有对应同类型实体的对象的抽象和公共特征、行为的集合。例如“汽车”是类,“一辆苹果绿色的甲克虫车”就是类的一个实例对象。 知识点:对象、实体和类的概念及相互之间关系。 2) 难度:适中 答案:抽象是去除被研究对象中与主旨无关的次

37、要的或暂时不予考虑的部分,而仅仅抽取出与研究工作有关的实质性的内容加以考察的一种科学研究方法。过程抽象将整个系统的功能划分为若干个部分,强调功能完成的过程和步骤。数据抽象把系统中需要处理的数据和这些数据上的操作结合在一起,根据其功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,又包含了针对这些数据的授权操作。数据抽象是相对于过程抽象更为严格、更为合理的抽象方法。面向对象软件开发使用数据抽象的方法来建构程序的类、对象和方法。 知识点:抽象的概念及抽象的实现。 3) 难度:适中 答案:封装是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象类型的

38、内部,系统的其他部分只有通过包裹在数据外面的被授权操作,才能够与这个抽象数据类型交流和交互。在面向对象的程序设计中,抽象数据类型是用“类”这种面向对象工具可理解和操纵的结构来代表的,每个类里都封装了相关的数据和操作。 知识点:封装的概念及封装的实现。 4) 难度:适中 答案:使用抽象可以暂时去除与核心问题无关的细枝末节,是开发工作可以集中在比较关键、主要的部分,从而起到明确工作的重点,理清问题的脉络的作用。使用封装可以提高数据的安全性、系统的严密性,以及开发模块的可重用性,从而降低开发过程的复杂性,提高开发效率和质量。 知识点:抽象和封装的优点。 5) 难度:适中 答案:Java程

39、序中使用的类分为系统定义的类和用户定义类两种。系统定义的类是Java语言自带的、已经定义了的类,即Java类库中的类。用户自定义类是使用Java语言的开发人员根据所需要解决的特定问题的特定逻辑自行设计、定义的类。 知识点:Java程序中使用的系统定义类和用户定义类的概念。 6) 难度:适中 答案:抽象方法是用abstract修饰符定义的方法。抽象方法只有方法头,没有具体的方法体。使用抽象方法可以为同一父类的所有子类规定统一的对外接口,同时隐蔽了实现方法中具体功能的代码细节。抽象方法必须定义在抽象类中,该抽象类的子类可以重载父类的抽象方法并赋予它具体的方法体。 知识点:抽象方法的特点及静

40、态方法处理的域。 7) 难度:容易 答案:子类的每个对象也是其超类的对象,反之则不然,超类的对象不一定是它的子类对象。 知识点:超类和子类的关系。 8) 难度:适中 答案:“是”是继承性,一个子类对象类按父类对象类型同样对待;“有”是组合性,类的对象中可以包含一个或多个其他类对象。例如汽车“有”转向轮。 知识点:继承性和组合性的区别。 9) 难度:适中 答案:有四种方法 ①用超类引用直接地引用超类对象。 ②用子类引用直接地引用子类对象。 ③用超类引用指向一个子类对象是安全的,因为子类对象也是其超类的对象。 ④用子类引用引向超类底下是语法错误,子类引用必须先转换成一个超类

41、引用。 知识点:子类对象向超类对象的转换。 10) 难度:适中 答案:有五点: ①含内部类的类在编译时将为每个内部类生成一个独立的.class文件; ②具有类名的内部类可以定义为public,protected,包访问或private,其使用限制和类的其他成员相同; ③为了访问外部类的this引用,可使用“外部类名.this”; ④外部类负责创建它的内部类的对象; ⑤内部类可以声明为static,static内部类不能访问外部类的非static成员。程序设计题答案 1)难度:适中 答案:源程序:Student.java class Student { private

42、String studentId; private int classId; private String studentName; private char studentGender; private int studentAge; String getStudentId( ) {return studentId;} int getclassId( ) {return classId;} char getStudentGender( ) {return studentGender;} String getStudentName( ) {return studentN

43、ame;} int getStudentAge( ) {return studentAge;} char getStudentAge( ) {return studentAge;} boolean setStudentAge( int newAge ) {if( newAge > 0 && newAge < 130 ){ studentAge = newAge; return true;} else{ System .out .println(“非法学生年龄”); Return false;} } } 知识点:如何创建类”。 2)难度:适中 答案:

44、源程序:Chuangjian.java public class Chuangjian { public static void main(String args[]) {Student demoStudent = new Student();} } class Student { private String studentId; private int classId; private String studentName; private char studentGender; private int studentAge; String getStudentI

45、d() {return studentId;} int getClassId() {return classId;} char getStudentGender() {return studentGender;} String getStudentName() {return studentName;} int getStudentAge() {return studentAge;} boolean setStudentAge(int newAge) {if( newAge>0 && newAge<130){ studentAge = newAge; return

46、 true;} else{ System.out.println("非法学生年龄!"); return false;} } } 知识点:创建类的对象。 3.)难度:适中 答案:源程序:Chuangj.java public class Chuangj { public static void main(String args[]) {Student demoStudent = new Student("008",892,'m',"张散",19); System.out.println(demoStudent.toString());} } class S

47、tudent { private String studentId; private int classId; private String studentName; private char studentGender; private int studentAge; String getStudentId() {return studentId;} int getClassId() {return classId;} char getStudentGender() {return studentGender;} String getStudentName() {

48、return studentName;} int getStudentAge() {return studentAge;} boolean setStudentAge(int newAge) {if( newAge>0 && newAge<130){ studentAge = newAge; return true;} else{ System.out.println("非法学生年龄!"); return false;} } Student(String id, int clsId, char gender, String name, int age) { s

49、tudentId = id; //studentId = new String(id); classId = clsId; studentName = new String(name); studentAge = age; studentGender = gender; } public String toString() {return "学生信息:\n" + "学号 " + this.getStudentId() + "\t班号 " + this.getClassId() + "\t姓名 " + this.getStudentName() + "\t性别 " + ((thi

50、s.getStudentGender()) == 'm' ? "男" : "女") + "\t年龄 " + this.getStudentAge();} } 知识点:为类定义构造函数。 4).难度:难 答案:源程序:Yonghu .java import java.applet.*; import java.awt.*; import java.awt.event.*; public class Yonghu extends Applet implements ActionListener {Label numberPrompt; Label passwordPromp

51、t; Label balancePrompt; Label connectNumberPrompt; TextField numberTfd; TextField passwordTfd; TextField balanceTfd; TextField connectNumberTfd; TextArea infoSummary; Button createPhoneCardBtn; PhoneCard myCard; public void init() {numberPrompt = new Label("卡号"); passwordPrompt = new Lab

52、el("密码"); balancePrompt = new Label("余额"); connectNumberPrompt = new Label("接入号码"); numberTfd = new TextField(10); passwordTfd = new TextField(5); passwordTfd.setEchoChar('*'); balanceTfd = new TextField(5); connectNumberTfd = new TextField(5); infoSummary = new TextArea(8,30); createPhoneC

53、ardBtn = new Button("创建"); add(numberPrompt); add(numberTfd); add(passwordPrompt); add(passwordTfd); add(balancePrompt); add(balanceTfd); add(connectNumberPrompt); add(connectNumberTfd); add(createPhoneCardBtn); add(infoSummary); createPhoneCardBtn.addActionListener(this);} public void a

54、ctionPerformed(ActionEvent e) {try{ myCard = new PhoneCard( Long.parseLong(numberTfd.getText()), Integer.parseInt(passwordTfd.getText()), Double.parseDouble(balanceTfd.getText()), connectNumberTfd.getText()); infoSummary.setText(myCard.toString());} catch(NumberFormatException nfe){ infoSummary

55、.setText("输入数据格式错误,请重试。"); numberTfd.setText(""); passwordTfd.setText(""); balanceTfd.setText(""); connectNumberTfd.setText("");} }} class PhoneCard {long cardNumber; private int password; double balance; String connectNumber; boolean connected; PhoneCard(long cn, int pw, double b,String

56、s) {cardNumber = cn; password = pw; if ( b > 0 ) balance = b; else System.exit(1); connectNumber = s; connected = false;} boolean performConnection(long cn,int pw) {if(cn == cardNumber && pw == password ){ connected = true; return true;} else{ connected = false; return false;} }

57、 double getBalance() {if(connected) Return balance; else return -1;} void performDial() {if(connected) balance -= 0.5;} public String toString() {String s = "电话卡接入号码:"+connectNumber +"\n电话卡卡号:"+cardNumber +"\n电话卡密码:"+password +"\n剩余金额:"+balance; if(connected) return (s + "\n电话已接通。"); els

58、e return (s + "\n电话未接通。");}} 知识点:this引用的使用。 5)、6)、7)、8)的编程答案略 第四章 判断题答案 1) 难度:容易;答案:错误;知识点:类和方法一般不能实现满足所有用户需要的错误处理。 2) 难度:容易;答案:正确;知识点:资源泄露的概念。 3) 难度:适中;答案:正确;知识点:应用程序的事件处理。 4) 难度:容易;答案:错误;知识点:发出一个异常是否一定不会是程序终止,但它会终止产生该异常的块。 5) 难度:适中;答案:正确;知识点:Java异常处理的机制。 6) 难度:容易;答案:错误;知识点:try块后面紧跟着一个或多

59、个catch块,每个catch块指定了它可以捕获的异常类型,并且包含了一个异常处理程序。 7) 难度:适中;答案:正确;知识点:在最后一个catch块后是一个可选的finally块,无论是否产生异常,它都会执行。 8) 难度:容易;答案:正确;知识点:程序执行没出现异常时的处理。 9) 难度:容易;答案:正确;知识点:抛出异常的概念。 10) 难度:适中;答案:错误;知识点:抛出异常后,控制从当前的try块退出,执行try块后适当的catch块处理程序(如果存在)。 选择题答案 1) 难度:容易;答案:B;知识点:跳过try块的异常处理程序,程序在最后一个catch块后开始执行。

60、 2) 难度:容易;答案:A;知识点:大多数程序不希望捕获Error对象。 3) 难度:适中;答案:BC;知识点:catch(Exception e)的用处。 4) 难度:容易;答案:A;知识点:使用finally块的原因。 5) 难度:适中;答案:AD;知识点:若oneMethod正常运行,则catch (ArrayIndexOutOfBoundsException e)和catch (Exception e)将不执行。 6) 难度:适中;答案:BC;知识点:选项B和C都使用throws TimedOutException,并且Exception是TimedOutException的

61、超类。 7) 难度:容易;答案:D;知识点:ArrayOutOfBoundsException是Java中预定以好的异常处理,而ArrayOutOfLengthException不是。 8) 难度:容易;答案:C;知识点:当异常发生时,在一个方法中throw被用来表示一个异常处理被抛出。 9) 难度:适中;答案:CD;知识点:Exception是NullPointerException的超类,并且finally块将被一直执行。 10) 难度:适中;答案:BCD;知识点:如果IOException块执行,只有语句 “location 1”被跳过;其他的都执行。简述题答案 1) 难度:容

62、易。 答案:①异常处理用来处理不经常发生,但通常会导致程序终止的情况,所以不要求编译器编写者实现异常处理;②传统的控制结构产生的控制流一般更清晰,效果也更高。③在发生异常时堆栈是松散的,并且在异常发生前分配的资源也许不会被释放,所以会出现一些问题。④“额外的”异常会妨碍真正的错误类型异常。程序员更难以跟踪大量的异常情况。 2) 难度:容易。 答案:对象会被标记为垃圾进行收集,在对象被垃圾收集之前会调用各个对象的finalizer。与一个try块相联系的catch处理程序(如果存在的话)会处理这个异常,该try块(如果存在)包含了引起异常的catch处理程序。 3) 难度:适中。 答案

63、:异常是Java程序在运行过程中产生的会终止正常运行的意外或错误。Java的异常处理机制可以帮助编程者及时、有效地处理程序可能产生的运行时错误。系统定义的异常类Exception是所有异常类的祖先,Java系统还另外定义了一些常见的运行异常,如输入输出异常等。 知识点:异常的概念。 4) 难度:适中。 答案:IOException, ArrayIndexOutOfBoundsException, NumberFormatExceptions 是3个常见的运行异常。用户程序可以根据自己的需要,定义在特定问题逻辑下非法的状态为用户异常。同用户程序可以通过派生系统类Exception的子类来定

64、义自己的异常。 知识点:自定义异常的概念。 5) 难度:适中。 答案:系统在运行一个Java程序时如果发现异常,则先查看这个Java程序有没有定义对于这个异常的处理操作;如果没有相应的处理操作,系统就会自动抛出异常并终止当前程序的运行。 知识点:抛出系统异常和用户自定义异常的方法。 程序设计题答案 1) 难度:适中 答案:源程序:Xiaoshu.java import java.io.*; public class Xiaoshu {public static void main(String args[]) {String s; double d; int i;

65、 boolean b = false; do{ try { System.out.println("请输入一个浮点数: "); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); s = br.readLine();//以字符串方式读入 i = s.indexOf('.');//找到小数点的位置 d = Double.parseDouble(s);//将字符串转换成浮点数 System.out.println(d + " 整数部分为:" + (long)d); if( i == -

66、1 ) //若没有小数点,则没有小数部分 System.out.println(d + " 小数部分为:0.0"); else //若有小数点,则截取小数点后的字符串合成浮点数 System.out.println(d + " 小数部分为:" + Double.parseDouble( ((s.charAt(0)=='-') ? "-" : "") + "0." + s.substring(i+1,s.length()))); b = false;} catch(NumberFormatException nfe){ System.out.println("输入浮点数格式有误。\n"); b = true;} catch(IOException ioe) { b = false;}} while(b);//浮点格式错误时重新输入 }// end of main }// end of class 知识点:输入非法参数的异常处理。 2) 难度:难 答案:源程序:Yinzi.java import java.applet.*; import java.awt

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!