《Java面向对象程序设计》期末考试
一、选择题(必做题) 【本题满分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
1
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( ); }
}
2
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=\ }
public static void main(String[] args) { String str=\ changeStr(str);
System.out.println(str); } }
二、选做题
【本题满分10分】
1. 编写一个类,该类对象为飞机,飞机汽油储备充足时可以起飞。可以起飞时,在命令行中输出“汽油储备量充足,飞机可以启动”。程序运行效果图如下所示:
3
【本题满分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接口。必须实现其中声明的所有抽象方法。
4

