福建工程学院信息学院《java复习提纲》Word文档格式.docx
《福建工程学院信息学院《java复习提纲》Word文档格式.docx》由会员分享,可在线阅读,更多相关《福建工程学院信息学院《java复习提纲》Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
四、简答题5X2=10
五、编程题10X2=20
练习题
一、选择题(每道题只有一个正确答案,每小题2分,共30分)15道题
1、关于Java语言叙述错误的是:
(C)
A.Java语言具有跨平台性
B.Java是一种面向对象的语言
C.Java语言中的类可以多继承
D.Java的垃圾收集机制自动回收程序已不再使用的对象
2、以下叙述正确的是:
(B)的确台a
A.构造方法必须是public方法
B.main方法必须是public方法
C.Java应用程序的文件名可以是任意的
D.构造方法应该声明为void类型
3、关于Java中数据类型叙述正确的是:
(B)
A、整型数据在不同平台下长度不同
B.boolean类型数据只有2个值,true和false
C.数组属于简单数据类型
D.Java中的指针类型和C语言的一样
4、设intx=1,floaty=2,则表达式x/y的值是:
(D)
A.0
B.1
C.2
D.以上都不是
5、以下语句有语法错的是:
(A)
A.intx=1;
y=2;
z=3
B.for(intx=10,y=0;
x>
0;
x++);
C.while(x>
5);
D.for(;
;
);
6、关于类和对象的叙述正确的是:
A.Java的类分为两大部分:
系统定义的类和用户自定义的类
B.类的静态属性和全局变量的概念完全一样,只是表达形式不同
C.类的成员至少有一个属性和一个方法
D.类是对象的实例化
7、以下有关构造方法的说法,正确的是:
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用
D.构造方法可以和类同名,也可以和类名不同
8、以下有关类的继承的叙述中,正确的是:
A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性
B.子类只能继承父类的方法,不能继承父类的属性
C.子类只能继承父类的非私有属性,不能继承父类的方法
D.子类不能继承父类的私有属性
9、下列属于容器的组件有:
A.JButton
B.JPane
C.Canvas
D.JTextArea
10、void的含义:
A.方法体为空
B.定义的方法没有形参
C.定义的方法没有返回值
D.方法的返回值不能参加算术运算
11、关于Java中异常的叙述正确的是:
A.异常是程序编写过程中代码的语法错误
B.异常是程序编写过程中代码的逻辑错误
C.异常出现后程序的运行马上中止
D.异常是可以捕获和处理的
12、所有的异常类皆继承哪一个类?
A.java.io.Exception
B.java.lang.Throwable
C.java.lang.Exception
D.java.lang.Error
13、下面哪个不是java语言中的关键字?
A.long
B.sizeof
C.instanceof
D.const
14、为实现进程之间的通信,需要使用下列那种流才合适?
(D)
A.Datastream
B.Filestream
C.Bufferedstream
D.Pipedstream
15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?
A.ActionListener
B.MouseListener
C.MouseMotionListern
D.ItemListener
二、填空题(每空1分,共20分)
1、面向对象程序设计所具有的基本特征是:
___抽象性___,_封装性___,_继承性__,_多态性__
2、数组x定义如下
intx[][]=newint[3][2]
则x..length的值为____3________,
x[0].length的值为_____2_______。
3、Java中实现多线程一般使用两种方法,一是___继承Thread类_________,二是_____实现Runnable方法__________
4、Java的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)__FlowLayout_____,___GridLayout_____,__BorderLayout_____,___CardLayout_______三、阅读程序,写出程序的输出结果(每题5分,共20分)
1、classA{
privateintprivateVar;
A(int_privateVar){
privateVar=_privateVar;
}
booleanisEqualTo(AanotherA){
if(this.privateVar==anotherA.privateVar)
returntrue;
else
returnfalse;
}
publicclassB{
publicstaticvoidmain(Stringargs[]){
Aa=newA
(1);
Ab=newA
(2);
System.out.println(a.isEqualTo(b));
程序的输出结果为:
____false_____
2、classA{
doublef(doublex,doubley){
returnx*y;
classBextendsA{
returnx+y;
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Bobj=newB();
System.out.println("
Theprogramoutputis"
+obj.f(4,6));
__Theprogramoutputis10_
3、publicclassUnchecked{
publicstaticvoidmain(String[]args){
try{
method();
}catch(Exceptione){
A"
}finally{
B"
staticvoidmethod(){
wrench();
C"
}catch(ArithmeticExceptione){
D"
E"
F"
staticvoidwrench(){
thrownewNullPointerException();
}
E
A
B
4、publicclassTest{
intx;
inta[]={0,0,0,0,0,0};
calculate(a,a[5]);
thevalueofa[0]is"
+a[0]);
thevalueisa[5]is"
+a[5]);
staticintcalculate(intx[],inty){
for(inti=1;
i<
x.length;
i++)
if(y<
x.length)
x[i]=x[i-1]+1;
returnx[0];
thevalueofa[0]is0
thevalueisa[5]is5
设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是(B)。
A)i=i+2B)a[0]=7;
C)i++---j;
D)a(0)=66;
模拟题:
选择题
编译下面源程序会得到()文件?
classA{}
classB{}
publicclassC{publicstaticvoidmain(stringargs[]){}}
(A)只有B.class文件
(B)只有A.class和B.class文件。
(C)有A.class、B.class和C.class文件
(D)编译不成功。
Java语言的类间的继承关系是(B)。
A)多重的B)单重的C)线程的D)不能继承
一个类中定义了如下两个方法,选项()说法正确。
voidout(){System.out.println();
voidout(intx){System.out.println(x);
(A)这种定义是正确的,是方法的重载。
(B)这种定义是正确的,是方法的重写。
(C)此种定义是错误的,一个类中不能定义两个名字相同的方法。
D)此种定义是错误的,第二个方法应该和第一个方法的参数相同。
下面程序段在运行时输出()。
classMyException{
publicstaticvoidmain(String[]args){
try{intx=1/0;
}catch(Exceptione){
System.out.print("
有刺客!
"
}finally{System.out.println("
别闹了,洗洗睡吧"
}}
(A)无内容输出。
(B)有刺客!
。
(C)别闹了,洗洗睡吧。
(D)有刺客!
别闹了,洗洗睡吧。
若已定义byte[]x={11,22,33,-66};
其中0≤k≤3,则对x数组元素错误的引用是(C)。
A)x[5-3]B)x[k]C)x[k+5]D)x[0]
设有定义floatx=3.5f,y=4.6f,z=5.7f;
则以下的表达式中,值为true的是(B)。
A)x>
y||x>
zB)x!
=y
C)z>
(y+x)D)x<
y&
!
(x<
z)
填空题
构造函数_没__有返回值。
.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和___double_______两种具体类型。
请完善下面Java应用程序,是一个类的定义:
publicclass_intMyclass___________
{
intx,y;
Myclass(inti,intj)//构造函数
x=i;
y=j;
}
请完善下面Java应用程序,使其运行时输出:
classmyThreadimplementsRunnable{
{int[]a={1,2,3};
m(a);
}}
publicstaticvoidm(int[]x){
for(inti=0;
i<
x.length;
i++)
System.out.println("
a["
+i+"
]="
+x[i]);
publicclassTest
{
publicstaticvoidmain(String[]args){
Threadt=newThread(______);
t.______;
}}
publicvoidrun()、newmyThread()、start()
.以下方法m的功能是求两参数之积的整数部分。
intm(floatx,floaty)
{__int_____k=(int)x*y___________;
编程题
1.编写一个圆形类Circle,包含:
(1)一个public属性:
圆形的半径rad。
(2)两个构造方法:
一个带有一个参数、一个不带参数的构造方法,其中不带参数的构造方法将圆形初始化为半径为10.0。
(3)两个方法:
求圆形面积的方法mianji()和求圆形周长的方法zhouchang()。
(4)获取圆形半径的方法getRad();
classCircle{
publicdoublerad;
publicCircle(){rad=10.0;
publicCircle(doubler){
rad=r;
}
publicdoublemianji(){
return3.14159*rad*rad;
publicdoublezhouchang(){
return2*3.14159*r;
}
publicdoublegetRad(){
returnrad;
用接口interfaceSingger{abstractpublicvoidsing();
}来模拟民歌(Folk),流行(Pop),摇滚(Rock)的歌声。
在main中,使用Singger数组来引用Folk,Pop,Rock对象,用多态来实现。
interfaceSingger//CHAPTER6
publicvoidsing();
classFolkimplementsSingger
publicvoidsing()
{
System.out.println("
美丽的草原啊我到家…."
classPopimplementsSingger
听妈妈的话…."
classRockimplementsSingger
想带上你私奔……"
publicclassMusicion
publicstaticvoidmain(String[]agrs)
SinggermySinggers[]=newSingger[4];
mySinggers[0]=newRock();
mySinggers[1]=newPop();
mySinggers[2]=newRock();
mySinggers[3]=newFolk();
for(intindex=0;
index<
4;
index++)
mySinggers[index].sing();
3.编写一个Java应用程序,在屏幕上输出”你好,JAVA!
”。
并写出应保存的文件名和编译、执行的语句。
publicclassHelloJava{
publicstaticvoidmain(Stringargs[]){
System.out.println("
你好,JAVA!
}
4.编写两个类Person和Student,要求Student类继承Person类;
其中
(1).Person类有privateStringname属性、privateintage属性两个属性;
(2).Person类有setName(Stringname)、setAge(intage)、getName()、getAge()四个方法分别用来设置和获取名字、年龄
(3).Student类还要具有privateStringschool属性和setSchool()和getSchool()方法用来设置和获取Student对象的school属性;
(4).编写测试类Test,在主函数main中创建一个学生对象,分别设置和获取该学生对象的name,age,school属性。
classPerson{
privateStringname;
privateintage;
publicvoidsetName(Stringname){
this.name=name;
publicvoidsetAge(intage){
this.age=age;
publicStringgetName(){
returnname;
publicintgetAge(){
returnage;
classStudentextendsPerson{
privateStringschool;
publicStringgetSchool(){
returnschool;
publicvoidsetSchool(Stringschool){
this.school=school;
publicclassTest{
publicstaticvoidmain(Stringarg[]){
Studentstudent=newStudent();
student.setName("
John"
student.setAge(18);
student.setSchool("
SCH"
System.out.println(student.getName());
System.out.println(student.getAge());
System.out.println(student.getSchool());
,5.编写一个线程的创建和实现实例:
在公共类TestThread中的主线程main中创建(两种方法均可)并启动一个线程,要求两个线程都循环输出0-99这100个数字,并在运行中能区分所输出的数字是有那个线程的执行结果。
publicclassTestThread{
Runner1r=newRunner1();
r.start();
i<
100;
i++){
MainThread:
------"
+i);
//classRunner1implementsRunnable{
classRunner1extendsThread{
publicvoidrun(){
i++){
Runner1:
2.用接口interfaceSingger{abstractpublicvoidsing();
}来模拟Folk,Pop,Rock的叫声。