JAVA各章习题及答案副本.docx

上传人:b****6 文档编号:4295470 上传时间:2022-11-29 格式:DOCX 页数:30 大小:50.12KB
下载 相关 举报
JAVA各章习题及答案副本.docx_第1页
第1页 / 共30页
JAVA各章习题及答案副本.docx_第2页
第2页 / 共30页
JAVA各章习题及答案副本.docx_第3页
第3页 / 共30页
JAVA各章习题及答案副本.docx_第4页
第4页 / 共30页
JAVA各章习题及答案副本.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

JAVA各章习题及答案副本.docx

《JAVA各章习题及答案副本.docx》由会员分享,可在线阅读,更多相关《JAVA各章习题及答案副本.docx(30页珍藏版)》请在冰豆网上搜索。

JAVA各章习题及答案副本.docx

JAVA各章习题及答案副本

面向对象程序设计—Java语言习题答案

第1章

一、选择题

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个字节码文件,扩展名为.class

(C)3个字节码文件,扩展名为.java(D)3个字节码文件,扩展名为.class

【解析】源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class。

4.在创建Applet应用程序时,需要用户考虑问题是(B)。

(A)窗口如何创建(B)绘制的图形在窗口中的位置

(C)程序的框架(D)事件处理

【解析】创建Applet程序时必须继承系统类Applet,而Applet类中已经包含了如何创建窗口以及事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定。

5.Java语言属于(B)种语言?

(A)面向机器的语言(B)面向对象的语言

(C)面向过程的语言(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(D)java.lang

【解析】凡是以java开头的包都是Java核心包,以javax开头的包则属于Java扩展包。

8.下列描述中,不正确的是(A)。

(A)不支持多线程(B)一个Java源文件不允许有多个公共类

(C)Java通过接口支持多重继承(D)Java程序分为Application和Applet两类

【解析】Java是支持多线程的语言。

9.阅读下列代码,选出该代码段正确的文件名(C)。

classA{

voidmethod1(){

System.out.println("Method1inclassA");

}

}

publicclassB{

voidmethod2(){

System.out.println("Method2inclassB");

}

publicstaticvoidmain(String[]args){

System.out.println("main()inclassB");

}

}

(A)A.java(B)A.class

(C)B.java(D)B.class

【解析】Java源文件名必须和公共类的名字完全一样,源文件的扩展名为.java。

10.编译下面源程序会得到哪些文件(D)?

classA1{

}

classA2{

}

publicclassB{

publicstaticvoidmain(String[]args){

}

}

(A)只有B.class文件(B)只有A1.class和A2.class文件

(C)编译不成功(D)A1.class、A2.class和B.class文件

【解析】由于该程序包含3个类,每个类编译后都会生成1个字节码文件,因此编译后会生成以这3个类名命名的字节码文件。

二、填空题

1.Java程序的编译和执行模式包括2点,是半编译和半解释。

2.Java语言支持TCP/IP协议,从而使得Java程序在分布式环境中能够很方便地访问处于不同地点的对象。

3.开发Java程序的一般步骤是:

源程序编辑、生成字节码和解释执行。

4.每个JavaApplication程序可以包括许多方法,但是必须有且只能有一个main()方法,统一格式为publicstaticvoidmain(String[]args),它是程序执行的入口。

5.JVM把字节码程序与各种不同的操作系统和硬件分开,使得Java程序独立于平台。

6.在Java程序中,能在WWW浏览器上运行的是Applet程序。

7.Java源程序文件和字节码文件的扩展名分别为.java和.class。

8.如果在Java程序中需要使用java.utile包中的所有类,则应该在程序开始处加上importjava.utitle.*语句。

三、编程题

1.编写一个JavaApplication类型的程序,输出“ThisismyfirstJavaApplication!

”。

【编程分析】要编写JavaApplication类型的程序,需要在JCreator中创建一个JavaApplication类型的工程,这时JCreator会自动创建程序框架,该框架包含一个公共类,其中包含一个main()方法。

删除main()方法中自动生成的代码,编写自己的代码即可。

由于该程序要求输出一句话,因此在main()方法中直接调用System.out.println()或System.out.print()方法即可实现。

【参考程序】

publicclassX3_1{

publicstaticvoidmain(Stringargs[]){

System.out.println("ThisismyfirstJavaApplication!

");

}

}

【运行结果】

ThisismyfirstJavaApplication!

2.编写一个JavaApplet类型的程序,输出“这是我的第一个JavaApplet类型的程序”。

【编程分析】要编写一个JavaApplet类型的程序,首先利用JCreator创建一个JavaApplet类型的工程,该工程自动创建两个文件,一个源文件(.java文件)和一个HTML文件(.html文件),源文件中包含一个公共类,其中包含两个方法,即init()方法和paint()方法,由于该程序只是要求输出一句话,因此只要将paint()方法中g.drawString()方法的第一个参数修改为要输出的内容即可。

如果不是利用JCreator开发工具,而是利用J2SDK,则用户需要自己编写HTML文件。

【参考程序】

importjava.awt.*;

importjava.applet.*;

publicclassX3_2extendsApplet{

publicvoidpaint(Graphicsg){

g.drawString("这是我的第一个JavaApplet类型的程序",50,50);

}

}

【运行结果】

第4章

一、选择题

1.下列哪种类成员修饰符修饰的变量只能在本类中被访问?

(D)

(A)protected(B)public(C)default(D)private

【解析】只有私有访问权限修饰符才能限制变量只能在本类中被访问。

2.在Java语言中,哪一个包中的类是自动导入的?

(A)

A)java.langB)java.awtC)java.ioD)java.applet

【解析】只有java.lang包中的类能够被自动导入。

3.给出下面的程序代码:

publicclassX4_1_3{

privatefloata;

publicstaticvoidm(){}

}

如何使成员变量a被方法m()访问(C)

(A)将privatefloata改为protectedfloata(B)将privatefloata改为publicfloata

(C)将privatefloata改为staticfloata(D)将privatefloata改为floata

【解析】static类型的方法只能访问static类型的数据成员。

4.有一个类B,下面为其构造方法的声明,正确的是(B)。

(A)voidB(intx){}(B)B(intx){}

(C)b(intx){}(D)voidb(intx){}

【解析】构造方法没有类型,且方法名与类名相同。

5.下面关于类的说法,不正确的是(C)。

(A)类是同种对象的集合和抽象(B)类属于Java语言中的复合数据类型

(C)类就是对象(D)对象是Java语言中的基本结构单位

【解析】类是对象的抽象,对象是类的实例,因此类和对象是有区别的。

6.下面关于方法的说法,不正确的是(C)。

(A)Java中的构造方法名必须和类名相同

(B)方法体是对方法的实现,包括变量声明和合法语句

(C)如果一个类定义了构造方法,也可以用该类的默认构造方法

(D)类的私有方法不能被其他类直接访问

【解析】类中一旦用户定义了构造方法,该类默认的构造方法就不存在了,除非用户再自定义该类的默认构造方法。

7.关于内部类,下列说法不正确的是(A)。

(A)内部类不能有自己的成员方法和成员变量

(B)内部类可用private或protected修饰符修饰

(C)内部类可以作为其他类的成员,而且可访问它所在的类的成员

(D)除static内部类外,不能在类内声明static成员

【解析】内部类也可以有自己的成员方法和变量。

8.定义外部类时不能用到的关键字是(C)。

(A)final(B)public(C)protected(D)abstract

【解析】定义外部类不能使用protected修饰符。

9.为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为(D)

(A)abstractvoidf()(B)publicvoidf()

(C)finalvoidf()(D)staticvoidf()

【解析】只有static类型的方法才可以直接使用类名来引用。

10.定义一个公有double型常量PI,哪一条语句最好?

(B)

(A)publicfinaldoublePI;(B)publicfinalstaticdoublePI=3.14;

(C)publicfinalstaticdoublePI;(D)publicstaticdoublePI=3.14;

【解析】用publicfinalstatic来定义常量,既可以节省存储空间,又可以保证数值不会被改变。

二、填空题

1.对象是对事物的抽象,而类是对对象的抽象和归纳。

2.从用户的角度看,Java源程序中的类分为两种:

系统定义的类和用户自己定义的类。

3.一个类主要包含两个要素:

数据成员和成员方法。

4.创建包时需要使用关键字package。

5.类中的构造方法是一个特殊的方法,该方法的方法名和类名相同。

6.如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个默认构造方法。

这个方法没有形式参数,也没有任何具体语句,不能完成任何操作。

7.静态数据成员被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。

因此,一个类的任何对象访问它时,存取到的都是相同(相同/不同)的数值。

8.静态数据成员既可以通过对象名来访问,也可以通过类名直接访问它。

9.定义常量时要用关键字final,同时需要说明常量的数据类型并指出常量的具体值。

10.方法体内定义变量时,变量前不能加修饰符;局部变量在使用前必须明确赋值,否则编译时会出错;而类变量在使用前可以不用赋值,它们都有一个默认的值。

11.static方法中只能引用static类型的数据成员和static类型的成员方法;而非static类型的方法中既可以引用static类型的数据成员和成员方法,也可以引用非static类型的数据成员和成员方法。

12.引用static类型的方法时,可以使用类名做前缀,也可以使用对象名做前缀。

13.当程序中需要引用java.awt.event包中的类时,导入该包中类的语句为importjava.awt.event.*。

14.定义类时需要class关键字,继承类时需要extends关键字,实现接口时需要关键字implements。

三、编程题

1.编一个程序,程序中包含以下内容:

一个圆类(Circle),包含:

属性:

圆半径radius;常量:

PI。

方法:

构造方法;求面积方法area();求周长方法:

perimeter()。

主类(X4_3_1),包含:

主方法main(),在主方法中创建圆类的对象c1和c2并初始化,c1的半径为100,c1的半径为200,然后分别显示两个圆的面积和周长。

【编程分析】按照要求创建Circle类,其中的半径可以定义为int类型,PI定义为finalstaticdouble类型,求面积和周长的方法都应定义为double类型,在构造方法中对radius进行初始化。

【参考答案】

publicclassX4_3_1{

publicstaticvoidmain(String[]args){

Circlec1=newCircle(100);

Circlec2=newCircle(200);

System.out.println("c1.area()="+c1.area()+"\tc1.perimenter()="+c1.perimeter());

System.out.println("c2.area()="+c2.area()+"\tc2.perimenter()="+c2.perimeter());

}

}

classCircle{

intradius;

finalstaticdoublePI=3.14;

Circle(intr){

radius=r;

}

doublearea(){

returnPI*radius*radius;

}

doubleperimeter(){

return2*PI*radius;

}

}

【运行结果】

c1.area()=31400.0c1.perimenter()=628.0

c2.area()=.0c2.perimenter()=1256.0

2.编一个程序,程序中包含以下内容:

一个学生类(Student),包含:

属性:

学号s_No,姓名s_Name,性别s_Sex,年龄s_Age。

方法:

构造方法,显示学号方法showNo(),显示姓名方法showName(),显示性别方法showSex(),显示年龄方法showAge(),修改年龄方法modifyAge()。

主类(X4_3_2),包含:

主方法main(),在其中创建两个学生对象s1和s2并初始化,两个对象的属性自行确定,然后分别显示这两个学生的学号、姓名、性别、年龄,然后修改s1的年龄并显示修改后的结果。

【编程分析】按照要求首先编写Student类,其中的属性和方法根据实际情况选择相应的类型和权限修饰符,要通过方法来修改年龄,因此s_Age属性应该为private类型,否则可以直接在主类中进行修改,就没有必要使用方法了。

【参考答案】

publicclassX4_3_2{

publicstaticvoidmain(String[]args){

Students1=newStudent(101,"张三","男",18);

Students2=newStudent(102,"李四","女",16);

System.out.println("第1个学生的信息为:

");

s1.showNo();

s1.showName();

s1.showSex();

s1.showAge();

System.out.println("第2个学生的信息为:

");

s2.showNo();

s2.showName();

s2.showSex();

s2.showAge();

System.out.println("修改第1个学生的年龄:

");

s1.modifyAge(24);

System.out.println("第1个学生的年龄修改为:

");

s1.showAge();

}

}

classStudent{

privateints_No;

privateStrings_Name;

privateStrings_Sex;

privateints_Age;

Student(intno,Stringname,Stringsex,intage){

s_No=no;

s_Name=name;

s_Sex=sex;

s_Age=age;

}

voidshowNo(){

System.out.println("学号:

"+s_No);

}

voidshowName(){

System.out.println("姓名:

"+s_Name);

}

voidshowSex(){

System.out.println("性别:

"+s_Sex);

}

voidshowAge(){

System.out.println("年龄:

"+s_Age);

}

voidmodifyAge(intnewAge){

s_Age=newAge;

}

}

【运行结果】

第1个学生的信息为:

学号:

101

姓名:

张三

性别:

年龄:

18

第2个学生的信息为:

学号:

102

姓名:

李四

性别:

年龄:

16

修改第1个学生的年龄:

第1个学生的年龄修改为:

年龄:

24

第5章

一、选择题

1.已知有下面类的说明:

publicclassX5_1_1extendsx{

privatefloatf=10.6f;

inti=16;

staticintsi=10;

publicstaticvoidmain(String[]args){

X5_1_1x=newX5_1_1();

}

}

在main()方法中,下面哪条语句的用法是正确的?

(A)

A.x.fB.this.siC.X5_1_1.iD.X5_1_1.f

【解析】由于x是在main方法内部定义的对象,因此它可以引用类的非static类型的属性,因此选A,而this和super不能在main方法中使用,使用类名只能引用本类的静态属性,因此B、C、D不对。

2.下列程序的运行结果是(C)。

publicclassX5_1_2extendsx{

intab(){

staticintaa=10;

aa++;

System.out.println(aa);

}

publicstaticvoidmain(String[]args){

X5_1_2x=newX5_1_2();

x.ab();

}

}

A.10B.11

C.编译错误D.运行成功,但不输出

【解析】方法体内的局部变量不能使用static修饰符。

3.下面关于接口的说法中不正确的是(C)。

A.接口中所有的方法都是抽象的

B.接口中所有的方法都是public访问权限

C.子接口继承父接口所用的关键字是implements

D.接口是Java中的特殊类,包含常量和抽象方法

【解析】子接口继承父接口所用的关键字也是extends,只有类实现接口时才使用implements。

4.区分类中重载方法的依据是(A)。

A.形参列表的类型和顺序B.不同的形参名称

C.返回值的类型不同D.访问权限不同

【解析】形参表的类型和顺序不同时区分重载方法的唯一标志。

5.子类对象能否直接向其父类赋值?

父类对象能否向其子类赋值?

(B)

A.能,能B.能,不能C.不能,能D.不能,不能

【解析】子类对象可以直接赋值给父类对象,而父类对象不能直接赋值给子类对象。

6.Java语言类间的继承关系是(A)。

A.单继承B.多重继承C.不能继承D.不一定

【解析】Java语言类间的继承关系是单继承,但一个类可以实现多个接口。

7.Java语言接口间的继承关系是(B)。

A.单继承B.多重继承C.不能继承D.不一定

【解析】Java语言接口间的继承关系允许多重继承。

8.一个类实现接口的情况是(A)。

A.一次可以实现多个接口B.一次只能实现一个接口

C.不能实现接口D.不一定

【解析】Java语言允许一个类一次实现多个接口。

9.定义外部类的类头时,不可用的关键字是(C)。

A.publicB.finalC.protectedD.abstract

【解析】定义外部类时不能使用protected关键字。

10.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?

(B)

A.不能引用,必须改名,使它们的名称不相同

B.在成员变量前加this,使用this访问该成员变量

C.在成员变量前加super,使用super访问该成员变量

D.不影响,系统可以自己区分

【解析】this可以用来引用本类对象。

11.下面说法不正确的是(B)。

A.抽象类既可以做父类,也可以做子类

B.abstract和final能同时修饰一个类

C.抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口

D.声明为final类型的方法不能在其子类中重新定义

【解析】abstract和final不能同时修饰一个类,因为abstract类需要子类,而final类不能有

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1