JAVA各章习题及答案

上传人:wuyo****995 文档编号:160855502 上传时间:2022-10-11 格式:DOC 页数:21 大小:128.50KB
收藏 版权申诉 举报 下载
JAVA各章习题及答案_第1页
第1页 / 共21页
JAVA各章习题及答案_第2页
第2页 / 共21页
JAVA各章习题及答案_第3页
第3页 / 共21页
资源描述:

《JAVA各章习题及答案》由会员分享,可在线阅读,更多相关《JAVA各章习题及答案(21页珍藏版)》请在装配图网上搜索。

1、第1章 Java入门一、选择题1下列选项中,不属于Java语言特点的一项是( C )。(A)分布式(B)安全性(C)编译执行(D)面向对象【解析】Java程序采用解释执行的方法。在系统编译运行Java程序时,Java编译器将Java程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行。2在Java语言中,(C )是最基本的元素?(A)方法(B)包(C)对象(D)接口【解析】构成Java程序的基本元素类(抽象的对象)。3编译一个定义了3个类和10个方法的Java源文件后,会产生( D )个字节码文件?扩展名是( D)?(A)13个字节码文件,扩展名为.class(B)1个字节码文件,

2、扩展名为.class(C)3个字节码文件,扩展名为.java(D)3个字节码文件,扩展名为.class【解析】源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class。4在创建Applet应用程序时,需要用户考虑问题是(B )。(A)窗口如何创建(B)绘制的图形在窗口中的位置(C)程序的框架(D)事件处理【解析】创建Applet程序时必须继承系统类Applet,而Applet类中已经包含了如何创建窗口以及事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定。5Java语言属于( B )种语言?(A)面向机器的语言 (B)面向对象的语言(C

3、)面向过程的语言 (D)面向操作系统的语言【解析】Java语言是一种纯面向对象的语言。6下列关于Application和Applet程序的说法中不正确的一项是( B )。(A)Application使用解释器java.exe (B)Application不使用独立的解释器 (C)Applet在浏览器中运行(D)Applet必须继承Java的Applet类【解析】Application程序包含main()方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行。7下列选项中,不属于Java核心包的一项是( A )。(A)javax.swing(B)java.io(C)java.utile(

4、D)java.lang【解析】凡是以java开头的包都是Java核心包,以javax开头的包则属于Java扩展包。8下列描述中,不正确的是( A )。(A)不支持多线程(B)一个Java源文件不允许有多个公共类(C)Java通过接口支持多重继承(D)Java程序分为Application和Applet两类【解析】Java是支持多线程的语言。9阅读下列代码,选出该代码段正确的文件名( C )。class Avoid method1()1 in class A);public class Bvoid method2()2 in class B);public static void main(St

5、ring args)(A)A.java(B)A.class(C)B.java(D)B.class【解析】Java源文件名必须和公共类的名字完全一样,源文件的扩展名为.java。10编译下面源程序会得到哪些文件( D )?class A1class A2public class Bpublic static void main(String args)【解析】由于该程序包含3个类,每个类编译后都会生成1个字节码文件,因此编译后会生成以这3个类名命名的字节码文件。11编译Java程序时,用于指定生成class文件位置的选项是( A )。A-d B-g C-verbose D-nowarn12下列标

6、识符(名字)命名原则中,正确的是( C )。A类名的首字母小写 B接口名的首字母小写C常量全部大写 D变量名和方法名的首字母大写13下面哪种注释方法能够支持javadoc命令?( C )A/ B/*.*/ C/*.*/ D/*.*/14下面哪些选项是正确的main方法说明?( D )Avoid main() Bprivate static void main(String args)Cpublic main(String args) Dpublic static void main(String args)二、填空题1Java程序的编译和执行模式包括2点,是 半编译 和 半解释 。2Java语

7、言支持 TCP/IP 协议,从而使得Java程序在分布式环境中能够很方便地访问处于不同地点的 对象 。3开发Java程序的一般步骤是:源程序编辑、 生成字节码 和 解释执行 。4每个Java Application程序可以包括许多方法,但是必须有且只能有一个 main() 方法,统一格式为 public static void main(String args) ,它是程序执行的入口。5JVM把字节码程序与各种不同的 操作系统 和 硬件 分开,使得Java程序独立于平台。6在Java程序中,能在WWW浏览器上运行的是 Applet 程序。7Java源程序文件和字节码文件的扩展名分别为 .jav

8、a 和 .class 。8如果在Java程序中需要使用java.utile包中的所有类,则应该在程序开始处加上语句。三、判断题1Java语言具有较好的安全性和可移植性及与平台无关等特性。( )2Java语言的源程序不是编译型的,而是编译解释型的。( )3Java Application程序中,必有一个主方法main(),该方法有没有参数都可以。( )4可以接收用户从键盘输入的简单数据。( )5Java程序中不区分大小写字母。( )6机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行。( )7System类中的println()方法分行显示信息,而print()方法不分行显示信息。

9、( )8当前路径的标识是“.”。 ( )9java命令不区分大小写,而javac命令区分大小写。( )10printf()和 format()方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流(System.out对象)中。( )11在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。( )第2章 标识符与简单数据类型一、选择题1下列( D )是合法的标识符?(A)12class(B)void(C)-5(D)_blank2下列( B )不是Java中的保留字?(A)if(B)sizeof(C)private(D)null3下列( C

10、 )不是合法的标识符?(A)$million(B)$_million(C)2$_million(D)$2_million4下列选项中,( B )不属于Java语言的基本数据类型?(A)整数型(B)数组(C)浮点型(D)字符型5下列关于基本数据类型的说法中,不正确的一项是( D )。(A)boolean类型变量的值只能取真或假(B)float是带符号的32位浮点数(C)double是带符号的64位浮点数(D)char是8位Unicode字符【解析】Java中的字符采用的是16位的Unicode字符。6下列关于基本数据类型的取值范围的描述中,正确的一个是( B )。(A)byte类型的取值范围是-

11、128128 (B)boolean类型的取值范围是真或假(C)char类型的取值范围是065536 (D)short类型的取值范围是-3276732767【解析】根据每种类型占几个字节即可推算出其取值范围,如byte类型占1个字节,即共包含28个数值,其取值范围范围应为-128127,其他类型也是如此。7下列关于Java语言简单数据类型的说法中,正确的一项是( A )。(A)以0开头的整数代表8进制整型常量(B)以0x或0X开头的整数代表8进制整型常量(C)boolean类型的数据作为类成员变量的时候,相同默认的初始值为true (D)double型数据占计算机存储的32位8下列Java语句中

12、,不正确的一项是( C )。(A)$e, a, b = 10;(B)char c, d = a;(C)float e = 0.0d;(D)double c = 0.0f;【解析】不能将double类型的常量赋值给float类型的变量。9在编写Java程序时,如果不为类的成员变量定义初始值,Java会给出它们的默认值,下列说法中不正确的一个是( D )。(A)byte的默认值是0(B)boolean的默认值是false(C)char类型的默认值是0(D)long类型的默认值是0.0L10下列语句中不正确的一个是( B )。(A)float f = 1.1f;(B)byte b = 128;(C)

13、double d = 1.1/0.0;(D)char c = (char)1.1f;【解析】bytel类型变量的取值范围是-128127。11下列表达式1+2+ aa+3的值是( B )。(A)12aa3(B)3aa3 (C)12aa(D)aa3【解析】整数和整数相加得到两个整数的和,而整数和字符串相加得到的是字符串。12已知y=2, z=3, n=4,则经过n=n+ -y*z/n运算后n的值为( A )。(A)3(B)-1(C)-1 (D)-3【解析】根据运算符的优先级,该表达式相当于n=n+ (-y)*z)/n。13已知a=2, b=3,则表达式a%b*4%b的值为( A )。(A)2(B

14、)1(C)-1(D)-2【解析】根据运算符的优先级,该表达式相当于(a%b)*4)%b。14已知x=2, y=3, z=4,则经过z- = -y x-运算后,z的值为( D )。(A)1(B)2(C)3(D)4【解析】在表达式运算过程中,-y的值变为2,x的值还是2,等号右侧运算后的值为0,因此z的值没有变化。15表达式(12=0) & (1/0 1)的值为( B )。(A)trueB)false(C)0(D)运行时抛出异常【解析】由于(12=0)的值为false,因此整个表达式发生短路运算,即(1/0 1)就没有参与运算,整个表达式的值为false。16设有类型定义short i=32; l

15、ong j=64; 下面赋值语句中不正确的一个是( B )(A)j=i; (B)i=j; (C)i=(short)j; (D)j=(long)i;【解析】long类型的数据不能自动转变为short类型,因此不能将long类型的变量直接赋值给short类型。17现有1个char类型的变量c1=66和1个整型变量i=2,当执行c1=c1+(char)i;语句后,c1的值为( D )。(A)d(B)D(C)68(D)语句在编译时出错【解析】两个字符型的数据相加,得到的是一个整数,而如果把整数再赋值给一个字符型变量则会在编译时出错。18下列说法中,正确的一项是( D )。(A)字符串abcd的长度为6

16、(B)False是Java的保留字(C)123.45L代表单精度浮点型(D)False是合法的Java标识符【解析】Java语言对字符的大小写是敏感的,False不是false,因此False是合法的Java标识符。19以下的变量定义语句中,合法的是( D )(A)float _*5 = 123.456F;(B)byte $_b1 = 12345;(C)int _long_ = 123456L;(D)double d = Double.MAX_VALUE;【解析】(A)中_*5不是合法的标识符,(B)中12345超出byte范围,(C)中不能将long类型的常量赋值给int型的变量。20下列关

17、于运算符优先级的说法中,不正确的一个是( C )(A)运算符按照优先级顺序表进行运算(B)同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的(C)同一优先级的运算符在表达式中都是按照从右到左的顺序进行运算的(D)括号可以改变运算的优先次序【解析】同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的。二、填空题1变量是Java程序的基本存储单元之一,变量的主要类型包括2大类:字符型 和 数值型 。2Java语言的整数类型变量和常量一样,各自都包括4种类型的数据,它们分别是byte、 int 、 short 和long。3 boolean 类型数据不可以做类型转换。4在Java语

18、言的基本数据类型中,占存储空间最少的类型是 boolean ,该类型占用的存储空间为 1 位。5Java语言中的 保留字 具有特殊意义和作用,不能作为普通标识符使用。6在Java语言中,浮点类型数据属于实型数据,可以分为 单精度 和 双精度 两种。7char类型的数据可以表示的字符数共为 65536 。8定义初始值为10的8次方的常整型变量iLong的语句是 final iLong = 100000000L 。9Java语言中的数据类型转换包括 自动转换 和 强制转换 两种。10Java中的字符采用的是16位的 Unicode 编码。11数据类型中存储空间均为64位的两种数据类型是 long

19、和 double 。12表达式9*4/ -5%5的值为 -2 。(十进制表示) 13表达式5&2的值为 0 。(十进制表示)14表达式423的值为 11010 。(二进制表示)16表达式7|3的值为 7 。(十进制表示) 17表达式102的值为 8 。(十进制表示)18Java语言中的逻辑与(&)和逻辑或(|)运算采用 短路 方式进行运算。19若a、b为int型变量,并且已分别赋值为5和10,则表达式(a+)+(+b)+a*b的值为 82 。20假设i=10, j=20, k=30,则表达式 !(ij+k) | !(i+10=j) 的值为 false 。三、判断题1Java语言使用的是Unic

20、ode字符集,每个字符在内存中占8位。( )2Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。( )3所有的变量在使用前都必须进行初始化。( )4已知byte i = (byte)127; i = i +1;这两个语句能被成功编译。( )5String str=abcdefghi;char chr=str.charAt(9); ( )6char chrArray= a, b, c, d, e, f, g;char chr=chrArray6; ( )7int i,j;boolean booleanValue=(i=j); ( )8int intArray=0,2,4,6,8;

21、 int length=int Array.length();( )9String str=abcedf; int length=str.length; ( )10short shortValue=220;byte byteValue=shortValue; ( )11int intArray60; ( )12char str=abcdefgh; ( )13说明或声明数组时不分配内存大小,创建数组时分配内存大小。( )14强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。( )第3章 运算符、表达式与语句一、选择题1下列( D )不属于Java语言流程控制结构?(A)分支语句(B

22、)跳转语句(C)循环语句(D)赋值语句【解析】Java语言流程控制结构只包括分支、循环和跳转三种语句。2假设a是int类型的变量,并初始化为1,则下列( D )是合法的条件语句?(A)if(a)(B)if(a=3)(C)if(a=2)(D)if(true)【解析】条件语句中的“条件表达式”只能是boolean类型,不能是其他类型。3下列说法中,不正确的一个是( C )。(A)switch语句的功能可以由ifelse if语句来实现(B)若用于比较的数据类型为double型,则不可以用switch语句来实现(C)if else if语句的执行效率总是比switch语句高(D)case子句中可以有

23、多个语句,并且不需要大括号括起来【解析】语句执行效率高低要根据具体语句来确定,不能简单地说ifelse if语句的执行效率总是比switch语句高。4设a、b为long型变量,x、y为float型变量,ch为char类型变量且它们均已被赋值,则下列语句中正确的是( B )。(A)switch(x+y) (B)switch(ch+1) (C)switch ch (D)switch(a+b); 【解析】switch后面的表达式必须放在括号()中,且表达式的类型只能是byte、short、int和char类型,不能是其他类型。5下列循环体执行的次数是( C )。int y=2, x=4;while(

24、-x != x/y) (A)1(B)2(C)3(D)4【解析】第1次执行while时,-x的值为3,3/2=1,满足等号两端值不等的条件,执行一次循环体;第2次执行while时,-x的值为2,2/2=1,条件满足,又执行一次循环体;第3次执行while时,-x的值为1,1/2=0,条件满足,再次执行一次循环体;第4次执行while时,-x的值为0,0/2=0,条件不满足满足,结束循环。因此在这个循环语句执行的过程中,循环体共执行了3次。6下列循环体执行的次数是( B )。int x=10, y=30;doy -= x; x+;while(x+y-);(A)1 (B)2 (C)3 (D)4【解析

25、】执行1次循环体后,y的值为20,x值为11,然后执行while,此时x+的值为11,y的值为20,因此x+y条件满足,判断完后,x的值变为12,y的值变为19;接着执行第2次循环体,执行完第2次循环体后,y的值为9,x值为13,然后执行while,此时x+的值为13,y的值为9,因此x+y条件不满足,结束循环。因此在这个循环语句执行的过程中,循环体共执行了2次。7已知如下代码:switch(m)case0:case1:case2:case3:defauCondition);当m的值为( D )时,输出“Condition 3”(A)2(B)0、1(C)0、1、2(D)0、1、2、3【解析】当

26、m的值为0、1、2、3时,都能输出“Condition 3”,因为case 0、case 1、case 2后面的语句都没有break,因此可以继续向后执行。二、填空题1跳转语句包括break、continue、return和throw2switch语句先计算switch后面的 表达式 的值,再和各 case 语句后的值做比较。3if语句合法的条件值是 boolean 类型。4continue语句必须使用于 循环 语句中。5break语句有两种用途:一种从switch 语句的分支中跳出,一种是从循环语句内部跳出。6do while循环首先执行一遍 循环体 ,而while循环首先判断 表达式的值

27、。7与C+语言不同,Java语言不通过 goto 语句实现跳转。8每一个else子句都必须和它前面的一个距离它最近的 if 子句相对应。9在switch语句中,完成一个case语句块后,若没有通过break语句跳出switch语句,则会继续执行后面的 case 语句块。10在for循环语句中可以声明变量,其作用域是 for循环体 。第4章 类与对象一、选择题1下列哪种类成员修饰符修饰的变量只能在本类中被访问?( D )(A)protected(B)public(C)default(D)private2在Java语言中,哪一个包中的类是自动导入的?( A )A)java.langB)java.a

28、wtC)java.io D)java.applet【解析】只有java.lang包中的类能够被自动导入。3给出下面的程序代码:public class X4_1_3 private float a; public static void m ( ) 如何使成员变量a被方法m( )访问( C )(A)将private float a改为protected float a(B)将private float a改为public float a(C)将private float a改为static float a(D)将private float a改为float a【解析】static类型的方法只能

29、访问static类型的数据成员。4有一个类B,下面为其构造方法的声明,正确的是( B )。(A)void B(int x)(B)B(int x) (C)b(int x)(D)void b(int x) 5下面关于类的说法,不正确的是( C )。(A)类是同种对象的集合和抽象(B)类属于Java语言中的复合数据类型(C)类就是对象(D)对象是Java语言中的基本结构单位【解析】类是对象的抽象,对象是类的实例 6下面关于方法的说法,不正确的是( C )。(A)Java中的构造方法名必须和类名相同(B)方法体是对方法的实现,包括变量声明和合法语句(C)如果一个类定义了构造方法,也可以用该类的默认构造

30、方法(D)类的私有方法不能被其他类直接访问【解析】类中一旦用户定义了构造方法,该类默认的构造方法就不存在了,除非用户再自定义该类的默认构造方法。7关于内部类,下列说法不正确的是( A )。(A)内部类不能有自己的成员方法和成员变量(B)内部类可用private或protected修饰符修饰(C)内部类可以作为其他类的成员,而且可访问它所在的类的成员(D)除static内部类外,不能在类内声明static成员8定义外部类时不能用到的关键字是( C )。(A)final(B)public(C)protected(D)abstract【解析】定义外部类不能使用protected修饰符。9为AB类定义

31、一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为( D )(A)abstract void f()(B)public void f()(C)final void f()(D)static void f()【解析】只有static类型的方法才可以直接使用类名来引用。10定义一个公有double型常量PI,哪一条语句最好?( B )(A)public final double PI;(B)public final static double PI=3.14;(C)public final static double PI;(D)public static double PI=3

32、.14;【解析】用public final static来定义常量,既可以节省存储空间,又可以保证数值不会被改变。二、填空题1 对象 是对事物的抽象,而 类 是对对象的抽象和归纳。2从用户的角度看,Java源程序中的类分为两种: 系统定义的类 和 用户自己定义的类 。3一个类主要包含两个要素: 数据成员 和 成员方法 。4创建包时需要使用关键字 package 。5类中的 构造 方法是一个特殊的方法,该方法的方法名和类名相同。6如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个默认构造方法。这个方法没有 形式参数 ,也没有任何 具体语句 ,不能完成任何操作。7静态数据成员被保

33、存在类的内存区的 公共存储 单元中,而不是保存在某个对象的内存区中。因此,一个类的任何对象访问它时,存取到的都是 相同 (相同/不同)的数值。8静态数据成员既可以通过 对象名 来访问,也可以通过 类名 直接访问它。9定义常量时要用关键字 final ,同时需要说明常量的 数据类型 并指出常量的 具体值 。10方法体内定义变量时,变量前不能加 修饰符 ;局部变量在使用前必须 明确赋值 ,否则编译时会出错;而类变量在使用前可以不用赋值,它们都有一个 默认 的值。11static方法中只能引用 static 类型的数据成员和 static 类型的成员方法;而非static类型的方法中既可以引用 st

34、atic 类型的数据成员和成员方法,也可以引用非static 类型的数据成员和成员方法。12引用static类型的方法时,可以使用 类名 做前缀,也可以使用 对象名 做前缀。 import 。14定义类时需要 class 关键字,继承类时需要 extends 关键字,实现接口时需要关键字 implements 。三、判断题1类是一种类型,也是对象的模板。( )2类中说明的方法可以定义在类体外。( )3实例方法中不能引用类变量。( )4创建对象时系统将调用适当的构造方法给对象初始化。( )5使用运算符new创建对象时,赋给对象的值实际上是一个引用值。( )6对象赋值实际上是同一个对象具有两个不同

35、的名字,它们都有同一个引用值。( )7对象可作方法参数,对象数组不能作方法参数。( )8class是定义类的惟一关键字。( )9Java语言会自动回收内存中的垃圾。( )第5章 子类与继承一、选择题1已知有下面类的说明:public class X5_1_1 extends xprivate float f =10.6f;int i=16;static int si=10;public static void main(String args) X5_1_1 x=new X5_1_1();在main()方法中,下面哪条语句的用法是正确的?( A )Ax.f Bthis.si CX5_1_1.i

36、 DX5_1_1.f【解析】由于x是在main方法内部定义的对象,因此它可以引用类的非static类型的属性,因此选A,而this和super不能在main方法中使用,使用类名只能引用本类的静态属性,因此B、C、D不对。2下列程序的运行结果是( C )。public class X5_1_2 extends xint ab()static int aa=10;aa+;public static void main(String args) X5_1_2 x=new X5_1_2();x.ab();A10B11C编译错误D运行成功,但不输出【解析】方法体内的局部变量不能使用static修饰符。3

37、下面关于接口的说法中不正确的是(C )。A接口中所有的方法都是抽象的B接口中所有的方法都是public访问权限C子接口继承父接口所用的关键字是implementsD接口是Java中的特殊类,包含常量和抽象方法【解析】子接口继承父接口所用的关键字也是extends,只有类实现接口时才使用implements。4区分类中重载方法的依据是( A )。A形参列表的类型和顺序B不同的形参名称C返回值的类型不同D访问权限不同【解析】形参表的类型和顺序不同时区分重载方法的唯一标志。5子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?( B )A能,能B能,不能C不能,能D不能,不能【解析】子类对象可以

38、直接赋值给父类对象,而父类对象不能直接赋值给子类对象。6Java语言类间的继承关系是( A )。A单继承B多重继承C不能继承D不一定【解析】Java语言类间的继承关系是单继承,但一个类可以实现多个接口。7Java语言接口间的继承关系是( B )。A单继承 B多重继承 C不能继承 D不一定【7.解析】Java语言接口间的继承关系允许多重继承。8一个类实现接口的情况是( A )。A一次可以实现多个接口B一次只能实现一个接口C不能实现接口D不一定【解析】Java语言允许一个类一次实现多个接口。9定义外部类的类头时,不可用的关键字是( C )。Apublic BfinalCprotected Dabs

39、tract【解析】定义外部类时不能使用protected关键字。10如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?( B )A不能引用,必须改名,使它们的名称不相同B在成员变量前加this,使用this访问该成员变量C在成员变量前加super,使用super访问该成员变量D不影响,系统可以自己区分【解析】this可以用来引用本类对象。11下面说法不正确的是( B )。A抽象类既可以做父类,也可以做子类Babstract和final能同时修饰一个类C抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口D声明为final类型的方法不能在其子类中重新定义【解析】abstrac

40、t和final不能同时修饰一个类,因为abstract类需要子类,而final类不能有子类。二、填空题1消息就是向对象发出 服务请求 ,是对 数据成员 和 成员方法 的引用。2在面向对象系统中,消息分为两类 公有消息 和 私有消息 。3在面向对象程序设计中,采用 继承 机制可以有效地组织程序结构。充分利用已有的类来创建更复杂的类,大大提高程序开发的效率,提高代码的复用率,降低维护的工作量。4 数据成员的隐藏 是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员。5子类可以重新定义与父类同名的成员方法,实现对父类方法的 覆盖 。6子类在重新定义父类已有的方法时,应保持与父类完全相

41、同的 方法名 、 返回值类型 和 参数列表 ,否则就不是方法的覆盖,而是子类定义自己特有的方法,与父类的方法无关。7this代表了 当前对象 的一个引用,super表示的是当前对象的 直接父类对象 的引用。8抽象类不能 创建 对象,该工作由抽象类派生的非抽象子类来实现。9如果父类中已有同名的abstract方法,则子类中就 不能 (能/不能)再有同名的抽象方法。10abstract类中不能有 private 访问权限的数据成员或成员方法。11 interface 是声明接口的关键字,可以把它看成一个特殊类。接口中的数据成员默认的修饰符是 public static final ,接口中的成员方

42、法默认的修饰符是 public abstract 。12如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须 实现 该接口的所有抽象方法;如果实现某接口的类是abstract的抽象类,则它可以 不实现 该接口所有的方法。但是对于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法以及自身所实现接口中的抽象方法都必须有实在的 方法体 。13包的作用有两个,一是 划分类名空间 ,二是 控制类之间的访问 。14封装也称 信息隐藏 ,是指类的设计者只为类的使用者提供类的可以访问的部分(包括类的数据成员和成员方法),而把类中的其他成员 隐藏 起来,使用户不能访问的机制

43、。15Java提供了4种访问权限来实现封装机制,即 private 、 protected 、 默认 和 public 。16Java中提供两种多态机制, 重载 与 覆盖 。17当一个构造方法需要调用另一个构造方法时,可以使用关键字 this ,同时这个调用语句应该是整个构造方法的 第一条 可执行语句。18如果子类自己没有构造方法,那么父类也一定 没有 (有/没有)带参的构造方法,此时它将继承父类的 无参构造方法 作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行 父类 的构造方法,然后再执行自己的 构造方法 。19对于父类的含参数构造方法,子类可以通过在自己的构造方

44、法中使用 super 关键字来调用它,但这个调用语句必须是子类构造方法的 第一条 可执行语句。20创建一个名为myPachkage的包的语句为 package myPackage; ,该语句应该放在程序第一行 位置。三、判断题1Java语言中,构造方法是不可以继承的。( )2子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目。( )3抽象方法是一种只有说明而无具体实现的方法。( )4Java语言中,所创建的子类都应有一个父类。( )5调用this 或super构造方法的语句必须放在第一条语句。( )6一个类可以实现多个接口,接口可以实现“多重继承”。 ( )7实现接口的类

45、不能是抽象类。( )8使用构造方法只能给实例成员变量赋初值。( )9Java 语言不允许同时继承一个类并实现一个接口。( )第6章 一、选择题1给出下面程序代码:byte a1, a2;byte a3;byte a4;下列数组操作语句中哪一个是不正确的?( A )Aa2 = a1Ba2 = a3Ca2 = a4Da3 = a4【解析】只有维数相同的数组才能相互赋值。2关于数组,下列说法中不正确的是( C )。A数组是最简单的复合数据类型,是一系列数据的集合B数组元素可以是基本数据类型、对象或其他数组C定义数组时必须分配内存D一个数组中所有元素都必须具有相同的数据类型【解析】数组元素可以是基本数

46、据类型、对象或其他数组。3设有下列数组定义语句:int a = 1, 2, 3;则对此语句的叙述错误的是( C )。A定义了一个名为a的一维数组Ba数组有3个元素Ca数组元素的下标为13D数组中每个元素的类型都是整数【解析】数组元素的下标是从0开始的。4执行语句:int x = new int20;后,哪个是正确的?(C)Ax19为空 Bx19未定义Cx19为0 Dx0为空【解析】此语句定义了x数组后,x0x19的值全部为0。5下面代码运行后的输出结果为( A )。public class X6_1_5 public static void main(String args) AB aa =

47、new AB(); AB bb; bb = aa; class AB int x = 100; AtrueBfalseC编译错误 D100【解析】同一个类的两个对象可以相互赋值,赋值后两个对象具有相同的存储空间,因此是相同的。6已知有定义:String s=I love,下面哪个表达式正确?( A )As += you;Bchar c = s1;Cint len = s.length;DString s = s.toLowerCase();【解析】字符串对象可以执行“+=”运算,但不能用s1这种方式取其中的字符,也不能用length求它的长度,可以用length()求其长度,因此B、C不正确,

48、不能再次定义s字符串,因此D不正确。二、填空题1 Object类 是所有类的直接或间接父类,它在 java.lang 包中。2System类是一个功能强大、非常有用的特殊的类,它提供了 标准输入/输出 、 运行时 系统信息等重要工具。这个类不能 实例化 ,即不能创建System类的对象,所以它所有的属性和方法都是 static 类型,引用时以类名System为前缀即可。3Applet由浏览器自动调用的主要方法 init , start , stop 和 destroy 分别对应了Applet从初始化、启动、暂停到消亡的生命周期的各个阶段 。4数组是一种 复合 数据类型,在Java中,数组是作为

49、 对象 来处理的。数组是有限元素的有序集合,数组中的元素具有相同的 数据类型 ,并可用统一的 数组名 和 下标 来唯一确定其元素。5在数组定义语句中,如果在数据类型和变量名之间时,之后定义的所有变量都是 数组 类型,当在变量名之后时,只有之前的变量是 数组 类型,之后没有的则不是数组类型。6数组初始化包括 静态 初始化和 动态 初始化两种方式。7利用 System 类中的 arraycopy() 方法可以实现数组元素的复制;利用 Arrays 类中的 sort() 和 binarySearch() 方法可以实现对数组元素的排序、查找等操作。8Java语言提供了两种具有不同操作方式的字符串类:

50、String 类和 StringBuffer 类。它们都是 的子类。第7章 内部类与异常类一、选择题1关于异常的含义,下列描述中最正确的一个是( D )。A程序编译错误B程序语法错误C程序自定义的异常事件D程序编译或运行时发生的异常事件【解析】异常就是程序编译或运行时发生的异常事件。2自定义异常时,可以通过对下列哪一项进行继承?( C )AError类 BApplet类CException类及其子类DAssertionError类【解析】自定义异常类时,该类必须继承Exception类及其子类。3对应try和catch子句的排列方式,下列哪一项是正确的?( A )A子类异常在前,父类异常在后B

51、父类异常在前,子类异常在后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 = z4; AArithmeticExceptionBNumberFormatExceptionCArrayIndexOutOfBoundsException

52、DIOException【解析】当程序执行到“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 = z4;int x = 0;int y = 5/x; AArithmeticExceptionBNumberFormatExceptionCArrayIndexOutOfBoundsException DIOException【解析】当程序执

53、行到“int p = z4”语句时,发生异常,程序中止执行,因此发生ArrayIndexOutOfBoundsException异常。6下列程序执行的结果是( B )。 public class X7_1_6 public static void main(String args) tryreturn;finally A程序正常运行,但不输出任何结果B程序正常运行,并输出FinallyC编译通过,但运行时出现异常D因为没有catch子句,因此不能通过编译【解析】在执行try-catch-finally语句块时,最后必须执行finally语句块中的内容,而本程序没有异常发生,因此程序正常运行,并

54、输出Finally。7下列代码中给出正确的在方法体内抛出异常的是( B )。Anew throw Exception( );Bthrow new Exception( );Cthrows IOException();Dthrows IOException;【解析】在方法体内抛出异常时只能使用throw,而不能使用throws,另外,“new Exception( )”是创建一个异常,因此B是正确的。8下列描述了Java语言通过面相对象的方法进行异常处理的好处,请选出不在这些好处范围之内的一项(C)A把各种不同的异常事件进行分类,体现了良好的继承性 B把错误处理代码从常规代码中分离出来C可以利用

55、异常处理机制代替传统的控制流程D这种机制对具有动态运行特性的复杂程序提供了强有力的支持二、填空题1异常是在程序编译或运行中所发生的可预料或不可预料的异常事件,出现在编译阶段的异常,称之为 编译时异常 ,出现在运行阶段的异常,称之为 运行时异常 。2根据异常的来源,可以把异常分为两种类型: 系统定义的运行时异常 和 用户自定义异常 。3所有的Java异常类都是系统类库中的 Exception 类的子类。4抛出异常分为 由系统自动抛出异常 、 通过throw抛出异常 以及 通过throws抛出异常 三种情况。5Java语言为我们提供了 trycatch 语句和trycatchfinally 语句捕

56、捉并处理异常。6一个try块后面可能会跟着若干个 catch 块,每个 catch 块都有一个异常类名作为参数。7如果try语句块产生的异常对象被第一个catch块所接收,则程序的流程将 转向第一个catch块 ,catch语句块执行完毕后就 退出当前方法 ,try块中尚未执行的语句和其他的catch块将被 忽略 ;如果try语句块产生的异常对象与第一个catch块不匹配,系统将自动转到 第二个catch块 进行匹配。8由于异常对象与catch块的匹配是按照catch块的 先后 顺序进行的,所以在处理多异常时应注意认真设计各catch块的排列顺序。9throws语句抛出的异常实际上是由thro

57、ws语句修饰的方法内部的 throw 语句抛出的,使用throws的主要目的是为了 通知所有预调用此方法的方法 。三、判断题1捕获异常try语句后面通常跟有一个或多个catch()方法用来处理try块内生成的异常事件。( )2使用try-catch-finally语句只能捕获一个异常。( )3try-catch语句不可以嵌套使用。( )4Error类所定义的异常是无法捕获的。( )5IOException异常是非运行时异常,必须在程序中抛弃或捕获。( )6用户自定义异常类是通过继承Throwable类来创建的。( )7当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。( )第8章 输入流与输出流一、选择题1下列数据流中,属于输入流的一项是( B )。A从内存流向硬盘的数据流B从键盘流向内存的数据流C从键盘流向显示器的数据流D

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