Java期末考试试卷
- 格式:doc
- 大小:95.00 KB
- 文档页数:5
1
一、选择题(必做题)
【本题满分20分】
1. 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
A、static void method( ) B、public void method( )
C、final void method( ) D、abstract void method( )
2. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(C )。
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
3. 下列关于修饰符混用的说法,错误的是( ):
A.abstract不能与final并列修饰同一个类 B.abstract类中不可以有private的成员
C.abstract方法必须在abstract类中 D.static方法中能处理非static的属性
4. 在JAVA中,类Worker是类Person的子类,Worker的构造方法中有一句“super()“,该语句( )
A.调用类Worker中定义的super()方法 B.调用类Person中定义的super()方法
C.调用类Person的构造函数 D.语法错误
5. 给出下列代码,如何使成员变量m 被方法fun( )直接访问?
class Test
{
private int m;
public static void fun( )
{
...
}
}
A)将private int m 改为protected int m
B)将private int m 改为 public int m
C)将private int m 改为 static int m
D)将private int m 改为 int m
《Java面向对象程序设计》期末考试
2 6. 在JAVA语言中,下面关于类的描述正确的是( )。
B.一个超类可以有多个子类
C.子类可以使用超类的所有
D.子类一定比超类有更多的成员方法
7. 读程序写结果:
class A
{
public int f(int x)
{ return x+1; }
}
class B extends A
{
Public int f(int x)
{ return x*x; }
}
public class E
{
Public static void main(String args[])
{ A a= new B( );
Int m= a.f(10);
System.out.println(m);
}
8. 读程序写结果:
class First{
public First(){
show();
}
public void show( ){
System.out.println(“I love C++!”);
}
}
public class Second extends First{
public void show(){
System.out.println(“I love Java!”);
}
public static void main(String[ ] args){
new Second( );
}
}
3 9. 读程序写结果:
class A
{
int a;
A(int b)
{a=b;}
void show()
{System.out.println(“a=”+a);}
}
public class Class1
{
public static void main (String args[])
{
A obj=new A(12345);
boolean b=false;
char ch=97;
obj.show();
System.out.println(“b=”+b+”\tch=”+ch);
}
}
10. public class Test1 {
public static void changeStr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
二、选做题
【本题满分10分】
1. 编写一个类,该类对象为飞机,飞机汽油储备充足时可以起飞。可以起飞时,在命令行中输出“汽油储备量充足,飞机可以启动”。程序运行效果图如下所示:
4 【本题满分20分】
2. 设计一个程序,其功能是从命令行输入整数字符串,再将该整数字符串转换为整型,输入的数据可能具有以下格式、
12345
123 45
1234xyz456
提示:程序通过命令行输入字符串,可能会产生IOException异常,所以程序使用catch(IOException e)来捕获这个可能产生的异常,并且输出提示信息。而将字符串转换为整数的时候,可能会产生NumberFormatException类型的异常,程序中使用catch(NumberFormatException ne)来捕获这个可能发生的异常,并且提示用户输入格式有错。
输入一个整数字符串代码如下:
BufferedReader in=new BufferedReader(new InputStreamReader (System.in));
int a=Integer.parsenInt(in.readLine());
【本题满分20分】
3. 定义Biology(生物)、Animal(动物)、Man(人)3个接口,其中Biology声明了breath()抽象方法,Animal接口声明了hasSex()和eat()抽象方法,Man接口声明了think()和study()抽象方法。定义NormalMan类实现上述3个接口,实现它们声明的抽象方法(仅显示相应的功能信息)。
提示:在Java中,类只允许单重继承,但一个类可以实现多个接口,从而达到多重继承的目的。在Biology、Animal和Man接口中,仅声明抽象方法。NormalMan类实现Biology、Animal和Man接口。必须实现其中声明的所有抽象方法。
5 【本题满分30分】
4. 设计一个学生类Student,其属性有name(姓名)、age(年龄)和degree(学位)。由Student类派生出本科生类Undergraduate和研究生类Graduate,Undergraduate类增加属性specialty(专业),研究生类增加属性direction(研究方向)。每个类都有show( )方法,用于输出属性信息。程序运行效果如下图所示:
提示:Student类的构造方法仅初始化name、age和degree,Undergraduate和Graduate类的构造方法除调用Student类的构造方法外,还分别需要初始化自己新增加的成员变量specialty和direction.
Student类的show()方法仅需要输出name、age和degree的值,Undergraduate和Graduate类的show()方法除调用Student类的show()方法外,还分别需要输出新增加的成员变量specialty和direction的值。
【本题满分30分】
5. 编写程序,模拟银行账户功能。要求如下:
属性:账号(account)、储户姓名(name)、地址(address)、存款余额(balance)、最小余额(minBalance)
方法:存款(deposit)、取款(withdraw)、查询(query)
根据用户操作显示储户相关信息。如存款操作后,显示储户原有余额、今日存款数额及最终存款余额;取款时,若最后余额小于最小余额,拒绝取款,并显示“至少保留余额:XXX”
程序执行效果如下图所示: