Java复习.docx
《Java复习.docx》由会员分享,可在线阅读,更多相关《Java复习.docx(13页珍藏版)》请在冰豆网上搜索。
Java复习
一、选择题
1.属于main()方法的返回类型是c
A、publicB、staticC、voidD、main
2.若a的值为3时,下列程序段被执行后,c的值是c
intc=1;
if(a>0)
if(a>3)
c=2;
elsec=3;
elsec=4;
A、1B、2C、3D、4
3.MAX_LENGTH是int型public成员变量,变量值保持为常量100,用简短语句定义这个变量。
d
ApublicintMAX_LENGTH=100;
BfinalintMAX_LENGTH=100;
CfinalpublicintMAX_LENGTH=100;
DpublicfinalintMAX_LENGTH=100.
4.c哪个关键字可以抛出异常?
AtransientBfinallyCthrowDstatic
5.如下Java程序片段
Integera=newInteger(3);Integerb=newInteger(3);
System.out.println(a==b);
运行后,该程序段的输出结果是(a)
A、trueB、falseC、0D、1
6.给出下面代码段
1)publicclassTest{
2)intm,n;
3)publicTest(){}
4)publicTest(inta){m=a;}
5)publicstaticvoidmain(Stringarg[]){
6)Testt1,t2;
7)intj,k;
8)j=0;k=0;
9)t1=newTest();
10)t2=newTest(j,k);
11)}
12)}
哪行将引起一个编译时错误?
d
Aline3Bline5Cline6Dline10
7.类与对象的关系是(a)。
A.类是对象的抽象
B.类是对象的具体实例
C.对象是类的抽象
D.对象是类的子类
8.若需要定义一个类变量或类方法,应使用哪种修饰符?
a
AstaticBpackageCprivateDpublic
9..执行完以下代码int[]x=newint[25];后,以下哪项说明是正确的a
Ax[24]为0Bx[24]未定义Cx[25]为0Dx[0]为空
10..Java程序的执行过程中用到一套JDK工具,其中java.exe是指(b)
A.Java文档生成器 B.Java解释器
C.Java编译器 D.Java类分解器
11.下列说法不正确的是(c)
A.IOException必须被捕获或抛出
B.java语言会自动初始化变量的值
C.java语言不允许同时继承一个类并实现一个接口
D.java语言会自动回收内存中的垃圾
12.在Java中,不属于整数类型变量的是(a)
A.double B.long
C.int D.byte
13.下列运算结果默认为float的是(c)
A.100/10 B.100*10
C.100F+10 D.100D-10
14.下面哪个是不合法的标识符?
(c)
A.$persons;B.TwoUsers;C.*point;D._endline;
15.假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个
是错误的?
(a)
publicclassFoo
{inti;
staticStrings;
voidimethod(){}
staticvoidsmethod(){}
}
A、Foo.imethod();B、f.imethod();
C、System.out.println(f.i);D、Foo.smethod()
16.编译并运行下述程序段的结果是:
(b)。
publicclassTest{
publicstaticvoidmain(Stringargv[]){
int[]count=newint[4];
System.out.println(count[4]);
}
}
A.编译时错误B.运行时错误C.输出0D.输出null
17.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的?
(c)
A.publicB.privateC.staticD.final
18.现有如下声明:
Stringstr=“helloworld”;
我们称变量str是:
(c)
a基本类型变量b引用类型变量c类变量
二、判断题(红色正确)
()1.boolean类型数据只有2个值,true和false
(x)2.数组属于简单数据类型
(x)3.abstract修饰符可修饰成员变量、方法和类
(x)4.抽象方法的body部分必须用一对大括号{}包住
(x)5.Java中的指针类型和C语言的一样
()6.Java的类分为两大部分:
系统定义的类和用户自定义的类
(x)7.类的静态属性和全局变量的概念完全一样,只是表达形式不同
(x)8.类的成员至少有一个属性和一个方法
(x)9.Java语言中的类可以多继承
()10.Java的垃圾收集机制自动回收程序已不再使用的对象
(x)12、整型数据在不同平台下长度不同
()13.子类不能继承父类的私有属性
(x)14.子类只能继承父类的方法,不能继承父类的属性
()15.Java是一种面向对象的语言
(x)16.类是对象的实例化
(x)17.构造器必须是public方法
()18.main方法必须是public方法
()19.Java语言具有跨平台性
(x)20.Java应用程序的文件名可以是任意的
(x)21.构造器应该声明为void类型
(x)22.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性(x)23.子类只能继承父类的非私有属性,不能继承父类的方法
()24.一个类的构造器可以有多个
(x)25.构造器在类定义时被调用
()26.Java中,对于每个数组都有一个属性length来指明其长度
(x)27.构造器可以和类同名,也可以和类名不同
(x)28.异常是程序编写过程中代码的语法错误
()29.数组下标的数据类型只能是byte,short,int,而不能是long型数据;
()30.运行时发生的错误称为异常
(x)31.构造器只能由对象中的其它方法调用
()32输入流就是读取数据时与数据源之间建立的数据通道
(x)33.异常是程序编写过程中代码的逻辑错误
()34.抽象类不能被实例化
(x)35.异常出现后程序的运行马上中止
()36.异常是可以捕获和处理的
(x)37.声明抽象方法,大括号可有可无
()38.抽象方法不定义方法体
三、填空题
1.在当前目录有一个名为Hello.java的java源程序,在命令行方式下用语句javacHello.java编译该程序,用语句javaHello运行该程序。
2、面向对象程序设计所具有的4个基本特征是:
封装性,_继承性 ,多态性、抽象性等。
3.java技术目前有j2SE,J2EE,J2ME三种版本(或平台).
4、Java数组中的每个元素的每一维下标都是从0开始的。
5、Java的图形用户界面设计中,如果要进行个性化界面设计,可以采用手工 布局。
6.java语言是一种面向对象的语言,编译所形成的代码又称为字节码.
7.Java是从C++语言改进重新设计。
8.提供Java存取数据库能力的包是java.sql
9、所有的异常类皆继承java.lang.Exception类
10.JRE的中文含义是JAVA运行期环境。
11.Java语言具有许多优点和特点,多线程反映了Java程序并行机制的特点
12.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同,这种面向对象程序特性称为重载
13.在使用interface声明一个接口时,只可以使用public修饰符修饰该接口。
14.在编写Javaapplication程序时,若需要使用到标准输入输出语句,必须在程序的开头写上importjava.io.*语句。
15、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
16、抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
17、Java提供包机制来组织类和接口。
包的声明语句package必须放在源程序第一句,而且只能有1个声明语句。
18.封装器类都包含在java.lang包中,int类对应的封装器类是Integer ,char类对应的封装器类是Character
19.Java程序的起始执行点(入口)是main方法。
四、分析运行下列程序
1、importjava.io.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{ABs=newAB("你好!
","中国");
System.out.println(s.toString());
}
}
classAB
{
Strings1;
Strings2;
AB(Stringstr1,Stringstr2)
{
s1=str1;s2=str2;
}
publicStringtoString()
{
returns1+s2;
}
}
2、classA{
doublef(doublex,doubley){
returnx*y;
}
}
classBextendsA{
doublef(doublex,doubley){
returnx+y;
}
}
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Bobj=newB();
System.out.println("程序运行结果是"+obj.f(1,4));
}
}
五、程序填空
编写Manager类,该类继承于Employee类
(1)为其添加:
两个属性:
办公室officeID和年终分红bonus;
1构造器方法:
带有4个参数的构造器方法,用于对除bonus属性外的所有其它属性进行初始化;
方法:
officeID属性和bonus属性的相关set和get方法;
(2)重写Employee类中的方法raiseSalary(doubleproportion),经理涨工资的计算方法为在雇员工资涨幅的基础上增加10%的比例。
答:
//Employee类
classEmployee{
protectedStringname;
protectedintnumber;
protectedStringaddress;
protectedfloatsalary;
/*构造器方法,用于创建指定名字、工号和住址的职员对象*/
publicEmployee(Stringname,intnumber,Stringaddress){
this(name,number);
this.address=address;}
publicvoidsetAddress(Stringaddress){
this.address=address;}
publicvoidsetSalary(floatsalary){
this.salary=salary;}
/*用于返回职员基本信息的方法*/
publicStringempInfo(){
return"姓名:
\t"+name+"\t工号:
\t"+number+"\t住址:
\t"+address+"\t薪水:
\t"+salary;}
/*按比例涨工资方法*/
publicvoidraiseSalary(floatproportion){
salary+=salary*proportion;}}
//编写Manager类
classManagerextendsEmployee{
privateintofficeid;
privateintbonus;
publicManager(Stringname,intnumber,Stringaddress,intofficeid){
super(name,number,address);
this.officeid=officeid;}
publicvoidsetofficeid(intofficeid){
this.officeid=officeid;}
publicintgetofficeid(){
returnofficeid;}
publicvoidsetbonus(intbonus){
this.bonus=bonus;}
publicintgetbonus(){
returnbonus;}
publicvoidraiseSalary(floatproportion){
salary+=salary*proportion*(1+0.1);
}}
六、问答题
1、简要叙述什么是访问控制符,列出Java中的访问控制符,并说明各个访问控制符的控制权限。
P126
答:
访问控制符是一组限定类、域或方法是否可以被程序里的其他部分访问和调用的修饰符。
类的访问控制符只有一个public,域和方法的访问控制符有四个,分别是public、private、protected、privateprotected,另外还有一种没有定义专门的访问控制符的缺省情况。
1,公有访问控制符public:
Java的类是通过包的概念来组织的,包氏类的一个松散的集合。
处于同一个包中的类可以不需要任何说明而方便的互相访问和引用,而对于不同包中的类,则不行。
但当一个类被声明为public时,他就具有了被其他包中的类访问的可能性,只要这些其他包中的类在程序中使用import语句引入public类,就可以访问和引用这个类。
类中被设定为public的方法是这个类对外的接口部分,避免了程序的其他部分直接去操作类内的数据,这实际就是数据封装思想的体现。
每个Java程序的主类都必须是public类,也是基于相同的原因。
用public修饰的类的域称为公共域。
如果公共域属于公共类,则它能被所有的其他类所引用。
public修饰符会造成安全性的数据封装性下降,所以一般应减少public域的使用。
2,缺省访问控制符:
缺省访问控制权规定,该类只能被同一个包中的类访问和引用,而不可以被其他包中的类使用,这种访问特性又称为包访问性。
同样道理,类内的域或方法如果美育访问控制符来限定,也就具有包访问性。
简单说,定义在同一个程序中的所有类属于一个包。
3,私有访问控制符private:
用private修饰得域或方法只能被该类自身所访问和修改,而且不能被任何其他类(包括该类的子类)来获取和引用。
private修饰符用来声明那些类的私有成员,它提供了最高的保护级别。
4,保护访问控制符protected:
用protected修饰的成员变量可以被三种类所引用:
该类自身、与它在同一个包中的其它类、在其他包中的该类的子类。
使用protected修饰符的主要作用是允许其他包中该类的子类来访问父类的特定属性。
5,私有保护访问控制符privateprotected:
用privateprotected修饰的成员变量可以被两种类访问和引用,一种是该类本身,一种是该类的所有子类。
把同一个包内的非子类排除在可访问的范围之外,使得成员变量更专于具有明确继承关系的类,而不是松散地组合在一起的包。
2、简述JDBC的主要功能。
P219
答:
1.建立与数据库的连接,2.执行SQL语句,3.处理SQL语句执行结果
七、编写程序
1、计算1/1.0+1/3+1/5+...+1/99的值。
答:
publicclassSum
{publicstaticvoidmain(Stringargs[])
{doublesum=0.0;
for(inti=1;i<=99;i=i+2)
sum+=1.0/(double)i;
System.out.println("sum="+sum);
}
}
2.用递归的方法求5!
。
答:
classFactorialTest{
staticlongFactorial(intn){
if(n==1)
return1;
else
returnn*Factorial(n-1);}
publicstaticvoidmain(Stringa[]){
intn=5;
System.out.println(n+"!
="+Factorial(n));}
}
3、设计一个Circle类,该类包括的属性有:
圆心坐标和圆的半径;包括的方法有:
设置和获取圆的坐标的方法,设置和获取半径的方法,计算圆的面积的方法。
另外编写一个Test类,测试Circle类。
答:
importjava.io.*;
classPoint{
doublex,y;
publicPoint(doublea,doubleb){x=a;y=b;}
publicvoidsetPoint(doublex,doubley){this.x=x;this.y=y;}
publicdoublegetX(){returnx;}
publicdoublegetY(){returny;}
}
classCircleextendsPoint{
protecteddoubleradius;
publicCircle(doublea,doubleb,doubler){super(a,b);radius=r;}
publicvoidsetCircle(doubler){radius=r;}
doublegetRadius(){returnradius;}
doublearea(){return3.14*radius*radius;}
}
publicclassTest{
publicstaticvoidmain(String[]args){
Circlecircle=newCircle(3.5,6.4,5.2);
System.out.println(circle.getX()+""+circle.getY()+""+circle.getRadius()+""+circle.area());
}
}
4.在按钮上显示,按钮被按的奇偶次。
P174
答:
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassMyButtonEventextendsJFrameimplementsActionListener
{
JLabeljL1;
JButtonjB1;
publicMyButtonEvent()
{
super("按钮事件处理");
jL1=newJLabel("欢迎访问,请单击下面的按钮");
jL1.setBounds(50,20,200,30);
jB1=newJButton("被按下偶数次");
jB1.setBounds(60,60,150,30);
jB1.addActionListener(this);
ContainerwinContainer=this.getContentPane();
winContainer.setLayout(null);
winContainer.add(jL1);
winContainer.add(jB1);
this.setSize(300,150);
this.setVisible(true);
}
publicstaticvoidmain(String[]args){
MyButtonEventw1=newMyButtonEvent();
}
publicvoidactionPerformed(ActionEvente){
if(jB1.getText().toString().equals("被按下奇数次"))
jB1.setText("被按下偶数次");
else
jB1.setText("被按下奇数次");
}
}
5、编写一个Animal类,包含:
P98
属性:
privateStringtype;//动物的类型
构造器:
//用于初始化私有属性type
方法:
publicStringtoString()//返回动物类型的信息
publicvoidsound()//输出动物的叫声信息
答:
classAnimal
{privateStringtype;
publicAnimal(Stringtype)
{this.type=type;}
publicStringtoString(){return"这是一只"+type;
}
publicvoidsound(){
System.out.println("不知道是什么声音");
}
}
classCatextendsAnimal{
publicCat(Stringtype){
super(type);}
publicvoidsound(){
System.out.println("喵喵喵...");
}
}
classDuckextendsA