《Java程序设计》期末复习.docx
《《Java程序设计》期末复习.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》期末复习.docx(17页珍藏版)》请在冰点文库上搜索。
《Java程序设计》期末复习
期末考试题型
一、填空题
1、Java源程序文件的扩展名是___java_______,编译源程序的命令是___javac________。
2、Java程序可分为___applet______________和__application____________两种类型。
3、声明静态成员的关键字是_____static__________,定义一个接口的关键字是_____interface_________。
4、创建pack1.pack2包的语句是____packagepack1.pack2_____________,importx.y.Myclass;语句的功能是_____通过import语句来导入到x,y.Myclass这个类下_____________。
5、___Object______类是所有Java类的直接或者间接父类。
6、转义字符___\t__能够实现“将输出内容跳到下一个制表位”的功能。
7、假设在程序中已执行:
Calendarcurrent=newGregorianCalendar();语句,则current.get(Calendar.YEAR)返回的是________当前时间的年份____________________。
二、单项选择题
1、以下哪个是应用程序main()方法的正确形式?
【B】
A.publicstaticintmain(Stringargs[])B.publicstaticvoidmain(Stringargs[])
C.publicstaticvoidMAIN(Stringargs[])D.publicstaticvoidmain(charargs[])
2、请在Java预定义了的数据类型中,为“姓名”选择一种合适的数据类型:
【B】
A.intB.StringC.booleanD.float
3、short型数据的取值范围为【C】
A.-27~27-1B.-216~216-1C.-215~215-1D.-231~231-1
4、下列标识符中,哪一个是合法的?
【A】
A.$personB.2abC.*pointD.this
5、已知x=10,则条件表达式(x>=5)&&(x<=2)的值是【D】
A.0B.1C.trueD.false
6、下列程序片段的输出结果是【A】
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;
}
A.0B.4C.2D.1
2330
7、在Java中定义常量的正确语句是【C】
A.intvalue=20;B.constintVALUE=20;
C.finalintVALUE=20;D.intVALUE=20;
8、设有如下的程序代码,在执行完后x和y的值各是多少?
【D】
intx=8,y=3,z;
z=x+++--y;
A.x=8,y=3B.x=10,y=2C.x=9,y=1D.x=9,y=2
9、对于名为Myclass的类,以下哪种方式是定义无参数构造方法的正确形式?
【C】
A.intMyclass(){…}B.voidMyclass(){…}
C.Myclass(){…}D.Myclass(intmyClassObject){…}
10、已有:
Stringstr="12.345";现欲将str转换为对应的双精度浮点数,正确的语句为【D】
A.Integer.parseInt(str);B.Double.valueOf(str);
C.Float.parseFloat(str);D.Double.parseDouble(str);
11、基类中具有【B】访问权限的成员,不允许在子类中直接对其进行访问或调用
A.publicB.privateC.protectedD.缺省的(即package)
12、对于字符串s="java",下面哪个选项可以返回字符'v'在字符串中的位置?
【B】
A.s.charAt('v');B.s.indexOf('v');C.indexOf('v');D.indexOf(s,'v');
13、以下哪一项是创建抽象类X的引用的正确方式?
【C】
A.Xx;x=newX();B.Xx=newX();C.Xx;D.以上均不正确
14、接口X声明了两个空方法m1()和m2(),当实现接口X时,以下哪个语法是正确的?
【C】
A.classYextendsX{B.classYextendsX{
publicvoidm1(){...}publicvoidm1(){...}
publicvoidm2(){...}}
}
C.classYimplementsX{D.classYimplementsX{
publicvoidm1(){...}publicvoidm1(){...}
publicvoidm2(){...}}
}
三、根据题目要求,把下面的程序补充完整
1、以下程序片段的功能是计算分段函数的值:
输入x,求相应的y值
……
(1)doublex,y;//将变量x和y声明为double类型
Strings=JOptionPane.showInputDialog("请输入x的值:
");
x=Double.parseDouble(s);
if(x<-5){
y=-x;
}elseif(
(2)x<5){
y=Math.sin(x);
}else{
y=(3)2*x-3;
}
JOptionPane.showMessageDialog(null,"x="+x+'\n'+"函数值为:
"+y);
……
2、以下程序片段实现的功能是对一维数组的元素求和:
……
int
(1)array[]={85,68,12,33,91};//声明一个名为array的int型一维数组
(2)intsum=0;//声明一个int型变量sum,初始值为0
for(inti=0;(3)isum=(4)sum+array[i];
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));
}
}
flase
true
0
程序运行结果:
___________________________
2、
//实现多态的程序
classAnimal{
publicvoiddisplay(){
System.out.println("我是一只可爱的动物,...");
}
}
classCatextendsAnimal{
publicvoiddisplay(){
System.out.println("我是能捉老鼠的好猫,...");
}
}
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)//带参数的构造方法,需要调用基类带参数构造函数;
doublegetVolume()//返回立方体的体积(计算公式:
底面积×高度)
StringtoString()//重写toString()方法,返回形如:
“立方体的长度:
xxx,宽度:
xxx,高度:
xxx,体积:
xxx”
字符串(其中:
xxx表示相应的数值)
(3)最后定义一个主类:
CubeTest,在它的main()方法中创建一个长度为4.5,宽度为5.5,高度为6.5的立方体对象cb,然后调用toString()方法输出其相应信息。
package test;
class Circle {
private double radius;
public Circle(double r) {
this.radius = r;
}
public double getLength() {
return radius;
}
public void setLength(double r) {
this.radius = r;
}
public double getArea() {
double area;
area = Math.PI * radius;
return area;
}
public String toString()
{
return "圆形的半径:
" + radius + "面积:
" + getArea();
}
}
class Cylinder extends Circle { private double height;
public Cylinder(double r, double h) {
super(r);
this.height = h;
}
public double getVolume() {
double volume;
volume = getArea() * height;
return volume;
}
public String toString()
{
return ("圆形的半径:
" + getLength() + "底面积:
" + getArea() + "体积:
" + getVolume());
}
}
public class CylinderTest {
public static void main(String[] args)
{
Cylinder cb = new Cylinder(4.5, 5.5);
System.out.println(cb.toString());
}
}
(4)、类似地,如果把矩形改成圆形,当作基类,在子类中增加一个成员变量高度,使其成为圆柱体的情况下将如何修改基类、子类和主程序?
请课后思考之,请组织程序记住步骤和方法。
package test;
class Circle {
private double radius;
public Circle(double r) { this.radius = r; }
public double getLength() { return radius; }
public void setLength(double r) { this.radius = r; }
public double getArea() { double area;
area = Math.PI * radius; return area; }
public String toString() {
return "圆形的半径:
" + radius + "面积:
" + getArea();
} }
class Cylinder extends Circle {
private double height;
public Cylinder(double r, double h) {
super(r);
this.height = h;
}
public double getVolume() {
double volume;
volume = getArea() * height;
return volume;
}
public String toString()
{
return ("圆形的半径:
" + getLength() + "底面积:
" + getArea() + "体积:
" + getVolume());
}
}
public class CylinderTest {
public static void main(String[] args)
{
Cylinder cb = new Cylinder(4.5, 5.5);
System.out.println(cb.toString());
}
}
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("_____myfile.txt______________");
try{
InputStreamf=newFileInputStream(______fname______________);
intsize=f._avaiable______________;
for(inti=0;iSystem.out.print((char)f.__read()_________________);//强制类型
f.____close()_____________________;
}
catch(IOExceptione){
System.out.println("文件读取失败");
}
}
}
3.事件处理编程步骤:
①创建运行窗体和独立组件对象;
②确定事件源、事件;
③为事件源注册对应事件侦听器对象;
④实现事件侦听器接口方法;
⑤运行主程序引发相应事件,观察事件处理结果。
(1)利用监听器接口中的方法处理事件
实例10-2功能:
在文本框中输入“123张小明”,当点击“确认”按钮时,下面的标签中将显示:
“您输入了:
123张小明”字样。
//实例10-2
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
classButtonFrameextendsFrameimplements
(1)ActionListener{
Buttonbtn=newButton("确认");
Labellb=newLabel("");
TextFieldtxt=newTextField(10);
ButtonFrame(){
super("实例10-2");
setLayout(newFlowLayout());
setBackground(Color.blue);
setSize(200,100);
lb.setForeground(Color.red);
(2)btn.addActionListener(this);//给按钮注册动作监听器
add(txt);
add(btn);
add(lb);
setVisible(true);
}
//对点击“确认”按钮所做的事件处理
publicvoid(3)actionPerformed(ActionEvente){
(4)lb.setText(“你输入了:
”+txt.getText());
}
}
publicclassTestButtonFrame{
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.*__;//导入java.sql包中的所有类
publicclassQueryTest{
publicstaticvoidmain(String[]args){
Stringurl="_jdbc:
odbc:
数据源名称___";//根据数据源,设置数据库URL
StringuserName="";//登录数据库用户名
Stringpassword="";//用户密码
___Connection___conn=null;//声明Connection对象
_____Statement___stmt=null;//声明Statement对象
try{
//加载JDBC-ODBC驱动程序
Class.___forName__("sun.jdbc.odbc.__JdbcOdbcDriver____");
//创建连接
conn=DriverManager._________________(url,userName,password);
//通过Connection对象,创建Statement对象
stmt=conn.__createStatement__();
//执行查询"年龄为20岁的学生信息"的SQL语句,得到结果集
____ResultSet__rs=stmt.__executeQuery____("select*fromstudentswhereage=”20”_____");
//通过循环输出相关学生信息
System.out.println("学号"