广州大学华软软件学院《Java程序设计》期末复习.docx
《广州大学华软软件学院《Java程序设计》期末复习.docx》由会员分享,可在线阅读,更多相关《广州大学华软软件学院《Java程序设计》期末复习.docx(14页珍藏版)》请在冰豆网上搜索。
![广州大学华软软件学院《Java程序设计》期末复习.docx](https://file1.bdocx.com/fileroot1/2023-2/2/0a6b4cea-a922-412e-b536-a90bae2a66e1/0a6b4cea-a922-412e-b536-a90bae2a66e11.gif)
广州大学华软软件学院《Java程序设计》期末复习
广州大学华软软件学院《Java程序设计》期末复习
随堂测验、考勤卷
期末考试题型
一、填空题
1、Java源程序文件的扩展名是__________,编译源程序的命令是___________。
2、Java程序可分为_________________和______________两种类型。
3、声明静态成员的关键字是_______________,定义一个接口的关键字是______________。
4、创建pack1.pack2包的语句是__________________________,importx.y.Myclass;语句的功能是_________
___________________________。
5、_________类是所有Java类的直接或者间接父类。
6、转义字符_____能够实现“将输出内容跳到下一个制表位”的功能。
7、假设在程序中已执行:
Calendarcurrent=newGregorianCalendar();语句,则current.get(Calendar.YEAR)
返回的是____________________________。
二、单项选择题
1、以下哪个是应用程序main()方法的正确形式,【】
A.publicstaticintmain(Stringargs[])B.publicstaticvoidmain(Stringargs[])
C.publicstaticvoidMAIN(Stringargs[])D.publicstaticvoidmain(charargs[])
2、请在Java预定义了的数据类型中,为“姓名”选择一种合适的数据类型:
【】
A(intB(StringC(booleanD(float
3、short型数据的取值范围为【】
77161615153131A.-2~2-1B.-2~2-1C.-2~2-1D.-2~2-14、下列标识符中,哪一个是合法的,【】
A.$personB.2abC.*pointD.this5、已知x=10,则条件表达式(x>=5)&&(x<=2)的值是【】
A.0B.1C.trueD.false
6、下列程序片段的输出结果是【】
intX=0;
if(X>0)X=1;
switch(x)
{
case1:
System.out.println
(1);
case0:
System.out.println(0);
case2:
System.out.println
(2);
break;
case3:
System.out.println(3);
default:
System.out.println(4);
break;
}
-1-
A.0B.4C.2D.1
2330
7、在Java中定义常量的正确语句是【】
A.intvalue=20;B.constintVALUE=20;
C.finalintVALUE=20;D.intVALUE=20;
8、设有如下的程序代码,在执行完后x和y的值各是多少,【】
intx=8,y=3,z;
z=x+++--y;
A.x=8,y=3B.x=10,y=2C.x=9,y=1D.x=9,y=29、对于名为Myclass的类,以下哪种方式是定义无参数构造方法的正确形式,【】
A.intMyclass(){„}B.voidMyclass(){„}
C.Myclass(){„}D.Myclass(intmyClassObject){„}10、已有:
Stringstr="12.345";现欲将str转换为对应的双精度浮点数,正确的语句为【】
A.Integer.parseInt(str);B.Double.valueOf(str);
C.Float.parseFloat(str);D.Double.parseDouble(str);11、基类中具有【】访问权限的成员,不允许在子类中直接对其进行访问或调用
A.publicB.privateC.protectedD.缺省的(即package)12、对于字符串s="java",下面哪个选项可以返回字符'v'在字符串中的位置,【】
(s.charAt('v');B.s.indexOf('v');C.indexOf('v');D.indexOf(s,'v');A
13、以下哪一项是创建抽象类X的引用的正确方式,【】
A.Xx;x=newX();B.Xx=newX();C.Xx;D.以上均不正确14、接口X声明了两个空方法m1()和m2(),当实现接口X时,以下哪个语法是正确的,【】
A.classYextendsX{B.classYextendsX{
publicvoidm1(){...}publicvoidm1(){...}
publicvoidm2(){...}}
}
C.classYimplementsX{D.classYimplementsX{
publicvoidm1(){...}publicvoidm1(){...}
publicvoidm2(){...}}
}
三、根据题目要求,把下面的程序补充完整
1、以下程序片段的功能是计算分段函数的值:
输入x,求相应的y值
x(x,,5),,sin(x)(,5,x,5)y,,
2x,3(x,5),
„„
(1);//将变量x和y声明为double类型
Strings=JOptionPane.showInputDialog("请输入x的值:
");
x=Double.parseDouble(s);
-2-
随堂测验、考勤卷
if(x<-5){
y=-x;
}elseif(
(2)){
y=Math.sin(x);
}else{
y=(3);
}
JOptionPane.showMessageDialog(null,"x="+x+'\n'+"函数值为:
"+y);
„„
2、以下程序片段实现的功能是对一维数组的元素求和:
„„
int
(1)={85,68,12,33,91};//声明一个名为array的int型一维数组
(2);//声明一个int型变量sum,初始值为0
for(inti=0;(3);i++)//利用循环计算数组中元素之和,并存放到sum中
sum=(4);
System.out.println("累加结果:
"+sum);
„„
四、写出下列程序的运行结果
1、
//字符串的比较
publicclassStringCompare{
publicstaticvoidmain(Stringargs[]){
Strings1="abc";
Strings2=newString("abc");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
System.out.println(pareTo(s2));
}
}
程序运行结果:
____________________________2、
//实现多态的程序
classAnimal{
publicvoiddisplay(){
System.out.println("我是一只可爱的动物,...");
}
}
classCatextendsAnimal{
publicvoiddisplay(){
System.out.println("我是能捉老鼠的好猫,...");
-3-
}
}
classDogextendsAnimal{
publicvoiddisplay(){
System.out.println("我是主人忠诚的卫士,...");
}
}
publicclassAnimalTest{
publicstaticvoidmain(Stringargs[]){
Animalam=newAnimal();
am.display();
am=newDog();
am.display();
am=newCat();
am.display();
}
}
程序运行结果:
____________________________
五、编程题
1(类的继承
(1)定义一个矩形类Rect,它封装了:
两个成员变量(访问权限为private):
length//表示矩形的长度,double类型
width//表示矩形的宽度,double类型,七个成员方法(访问权限为public):
Rect(doublel,doublew)//带参数的构造方法
voidsetLength(doublel)//设置矩形的长度
doublegetLength()//返回矩形的长度
voidsetWidth(doublew)//设置矩形的宽度
doublegetWidth()//返回矩形的宽度
doublegetArea()//返回矩形的面积
StringtoString()//返回形如:
“矩形的长度:
xxx,宽度:
xxx,面积:
xxx”
字符串(其中:
xxx表示相应的数值)
(2)再定义一个立方体类Cube,它继承了矩形类Rect(上一题已定义),并增加了:
一个成员变量(访问权限为private):
height//立方体的高度,double类型,三个成员方法(访问权限为public):
Cube(doublel,doublew,doubleh)//带参数的构造方法,需要调用基类带参数构造函数;
-4-
随堂测验、考勤卷
doublegetVolume()//返回立方体的体积(计算公式:
底面积×高度)
StringtoString()//重写toString()方法,返回形如:
“立方体的长度:
xxx,宽度:
xxx,高度:
xxx,体积:
xxx”
字符串(其中:
xxx表示相应的数值)
(3)最后定义一个主类:
CubeTest,在它的main()方法中创建一个长度为4.5,宽度为5.5,高度为6.5的立方体对
象cb,然后调用toString()方法输出其相应信息。
(4)、类似地,如果把矩形改成圆形,当作基类,在子类中增加一个成员变量高度,使其成为圆柱体
的情况下将如何修改基类、子类和主程序?
请课后思考之,请组织程序记住步骤和方法。
2.用FileInputStream(文件输入流)读文件
(1)步骤
?
引入相关的类
importjava.io.IOException;importjava.io.InputStream;
importjava.io.FileInputStream;
?
创建一个文件输入流对象
InputStreamf=newFileInputStream(文件名);//对象f关联源数据源?
f.read();//读取文件一个字节,并返回0-255一个int数,若文件读取完毕或再无可读数据,返回
-1
f.available();//可读取字节数?
?
f.close();//关闭文件输入流
(2)完成下面用FileInputStream读文件示例
importjava.io.*;
publicclasstestFile{
publicstaticvoidmain(String[]args){
Filefname=newFile("___________________");
try{
InputStreamf=newFileInputStream(____________________);
intsize=f._______________;
for(inti=0;iSystem.out.print((char)f.___________________);//强制类型
f._________________________;
}
catch(IOExceptione){
System.out.println("文件读取失败");
}
}
}
3.事件处理编程步骤:
?
创建运行窗体和独立组件对象;
-5-
?
确定事件源、事件;
?
为事件源注册对应事件侦听器对象;
?
实现事件侦听器接口方法;
?
运行主程序引发相应事件,观察事件处理结果。
(1)利用监听器接口中的方法处理事件
2功能:
在文本框中输入“123张小明”,当点击“确认”按钮时,下面的标签中将显示:
“您输入了:
实例10-
123张小明”字样。
//实例10-2
importjava.awt.*;
importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;
classButtonFrameextendsFrameimplements{
(1)
Buttonbtn=newButton("确认");
Labellb=newLabel("");
TextFieldtxt=newTextField(10);
ButtonFrame(){
super("实例10-2");
setLayout(newFlowLayout());
setBackground(Color.blue);
setSize(200,100);
lb.setForeground(Color.red);
(2);//给按钮注册动作监听器
add(txt);
add(btn);
add(lb);
setVisible(true);
}
//对点击“确认”按钮所做的事件处理
publicvoid(3)(ActionEvente){
(4);
}
}
publicclassTestButtonFrame{
-6-
随堂测验、考勤卷
publicstaticvoidmain(String[]args){
ButtonFramebuttonFrame=newButtonFrame();
}
}
(2)修改上面程序,拓展成为通过鼠标事件和键盘事件实现一个简单用户登录画面程序.操作过程:
当输入用户
或密码不正确时光标留在对应文本框处,弹出请输入正确用户或密码提示对话框:
当输入用户和密码正确时弹
出欢迎对话框.请组织程序记住步骤和方法.
4.采用JDBC-ODBC桥式的数据库连接的主要步骤:
?
创建数据源(使用JDBC-ODBC桥式驱动程序时必需);
?
注册、加载特定的驱动程序;
?
创建连接--Connection对象;
?
利用Connection对象生成Statement对象;
?
利用Statement对象执行SQL语句,如查询、更新、插入、删除等;?
若是执行查询语句,还要从ResultSet读取数据;
?
关闭ResultSet、Statement、Connection等。
(1)JDBC_ODBC桥方式查询数据库实例
import______________;//导入java.sql包中的所有类
publicclassQueryTest{
publicstaticvoidmain(String[]args){
Stringurl="____________________";//根据数据源,设置数据库URL
StringuserName="";//登录数据库用户名
Stringpassword="";//用户密码
___________conn=null;//声明Connection对象
___________stmt=null;//声明Statement对象
try{
//加载JDBC-ODBC驱动程序
Class.__________("sun.jdbc.odbc.______________");
//创建连接
conn=DriverManager._________________(url,userName,password);
//通过Connection对象,创建Statement对象
stmt=conn._________________();
//执行查询"年龄为20岁的学生信息"的SQL语句,得到结果集
___________rs=stmt.__________________("select*fromstudentswhere____________");
//通过循环输出相关学生信息
System.out.println("学号"+"\t\t姓名"+"\t性别"+"\t年龄"+"\t专业"
+"\t\t\t宿舍");
while(rs.________()){
Stringid=rs.getString("学号");
Stringname=rs.__________("姓名");
Stringsex=rs.getString("性别");
-7-
intage=rs.________("年龄");
Stringmajor=rs.getString("专业");
Stringdormitory=rs.getString("宿舍");
System.out.println(id+"\t"+name+"\t"+sex+"\t"+age
+"\t"+major+"\t"+dormitory);
}
rs.___________();//关闭结果集
stmt.close();
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}catch(ClassNotFoundExceptionex){
ex.printStackTrace();
}
}
}
(2)思考题:
数据库查询、插入、更新、删除操作包含哪些步骤,程序是怎样组织的,
5.TCP编程的主要步骤:
服务器、客户端分别创建ServerSocket、Socket对象;?
?
服务器、客户端分别打开连接到socket的输入/输出流;
?
按照一定的协议对socket进行读/写操作;
?
关闭socket。
(1)编写一个最简单的C/S程序,请组织程序记住步骤和方法.
(2)说明如下:
?
服务器程序能够处理多个客户的请求,并向客户端发送一个“你好”字符串;?
客户端与服务器连接后,读取一行服务器的信息,在屏幕上输出信息;?
若客户端和服务器是同一台计算机,则可使用127.0.0.1代表本机IP地址。
若不是,则将IP改为服务器实际配
置的IP地址。
?
本程序中使用端口号为2345(大于1024)。
(3)答:
1)服务器端代码主要片段:
2)客户端代码主要片段:
6.JUnit框架组成,即单元测试步骤和方法.
(1)常用类()接口说明如下:
?
Test接口——运行测试和收集测试结果
?
TestCase抽象类——定义测试中固定方法。
TestCase是Test接口的抽象实现,(不能被实例化,只能被继承)
其构造函数TestCase(stringname)根据输入的测试名称name创建一个测试实例。
?
Assert包含了一组静态的测试方法,用于期望值和实际值比对是否正确,即测试失败,Assert类就会抛出一
个AssertionFailedError异常,JUnit测试框架将这种错误归入Failes并加以记录,同时标志为未通过测试。
?
TestSuite类负责组装多个TestCases。
待测得类中可能包括了对被测类的多个测试,而TestSuit负责收集这些
-8-
随堂测验、考勤卷
测试,使我们可以在一个测试中,完成全部的对被测类的多个测试。
?
TestResult结果类集合了任意测试累加结果,通过TestResult实例传递个每个测试的Run()方法。
TestResult在执行TestCase是如果失败会异常抛出
-9-