《java程序设计》期末复习题 联系客服

发布时间 : 星期四 文章《java程序设计》期末复习题更新完毕开始阅读629528c58bd63186bcebbc55

A aa; B bb;

aa=new A( ); bb=new B( ); aa.show( ); bb.show(); }}

class A {

int a=1;

double d=2.0; void show( )

{ System.out.println(\}

class B extends A {

float a=3.0f;

String d=\int b=4;

void show( ) {

System.out.println(\super.show( );

System.out.println(\}}

问题:1)这是哪一类java程序 (java应用程序) 2)类A和类B是什么关系 (类B是类A的子类) 3)按程序输出的格式写出程序运行后的结果. (程序运行结果如下: Class A: a=1 d=2.0 Class A: a=1 d=2.0 Class A: a=1 d=2.0

Class B: a=3.0 d=Java program. b=4 ) 26.现有类说明如下,请回答问题: class A {

int x=10;

int getA(){return x;} }

class B extends A {

int x=100;

int getB(){return x;} }

问题:1)类B是否能继承类A的属性x (能)

2)若b是类B的对象,则b.getB()的返回值是什么 (100) 3)若b是类B的对象,则b.getA()的返回值是什么 (10)

13

4)类A和类B都定义了x属性,这种现象称为什么 (属性的隐藏)

27.有如下源程序,请回答问题: class A

{ String s=\class B extends A

{ String s=\

public class TypeConvert {

public static void main(String args[]) {

B b1,b2=new B(); A a1,a2; a1=(A)b2; a2=b2;

System.out.println(a1.s); System.out.println(a2.s); b1=(B)a1;

System.out.println(b1.s); System.out.println(b2.s); }}

问题: 该程序的四行输出各是什么 (class A class A class B class B)

28.现有类说明如下,请回答问题: public class A {

int x=888;

String str=\

public String toString() { return str+x; } }

public class B extends A {

String x=\

public String toString()

{ return str+x+\

问题:1)类A和类B是什么关系 (类B是类A的子类)

2)类A和类B都定义了方法toString(),这种现象称为什么 (方法的覆盖)

14

3)若a是类A的对象,则a.toString( )的返回值是什么 (I like: 888) 4)若b是类B的对象,则b.toString( )的返回值是什么

I like:java and 888

29下面的是关于类及其修饰符的一些描述,不正确的是:( b )。

A、abstract类只能用来派生子类,不能用来创建abstract类的对象。 B、final类不但可以用来派生子类,也可以用来创建final类的对象。 C、abstract不能与final同时修饰一个类。

D、abstract方法必须在abstract类中声明,但abstract类定义中可以没 有abstract方法。

30.设有下面两个赋值语句:

a = Integer.parseInt(“1024”);

b = Integer.valueOf(“1024”).intValue(); 下述说法正确的是( d )。

A、a是整数类型变量,b是整数类对象。 B、a是整数类对象,b是整数类型变量。

C、a和b都是整数类对象并且它们的值相等。 D、a和b都是整数类型变量并且它们的值相等。 31. class X {

Y b = new Y(); X() {

System.out.print(\ } }

class Y { Y() {

System.out.print(\ } }

public class Z extends X { Y y = new Y(); Z() {

System.out.print(\ }

public static void main(String[] args) { new Z(); }} A.Z B.YZ C.XYZ D.YXYZ 答案D

32. 6.关于实例方法和类方法,以下描述正确的是: (D)

A. 实例方法只能访问实例变量

15

B. 类方法既可以访问类变量,也可以访问实例变量 C. 类方法只能通过类名来调用

D. 实例方法只能通过对象来调用 33. 下列关于继承的说法哪个是正确的? B

A.子类只继承父类public方法和属性; B.子类继承父类的非私有属性和方法;

C.子类只继承父类的方法,而不继承父类的属性;’ D.子类将继承父类的所有的属性和方法。

34. 你想要增加一个功能给wait()方法。你将如何来做? d a. 重载wait()方法。 b. 覆盖wait()方法。

c. 不能增加功能,因为他是Object类的成员,而Object类是所有类的基类。 d. 不能增加任何功能,因为wait()已经被最终定义。

练习十一(多态:抽象类和抽象方法,最终类和最终方法,接口)

1. 下列选项中,用于定义接口的关键字是( A).

A)interface B) implements C) abstract D) class 2. 下列选项中,用于实现接口的关键字是( B).

A)interface B) implements C) abstract D) class 3. 抽象方法只有方法头,没有________. (方法体) 4. Java 语言的接口是特殊的类,其中包含______常量和_______方法.(static(静态) ; abstract(抽象))

5. 接口中所有属性均为_________,_________和________的.(public,static,final) 6. 用那个关键字定义抽象类和抽象方法 (abstract)

7. 抽象类只能做为父类吗 (也可以包含抽象方法,做为抽象子类) 8. 可以定义抽象类的对象吗 (不能) 9. 抽象方法能被继承吗 (能)

10. 抽象方法只能存在于抽象类中吗 (是;也可以存在在接口中) 11. 声明为final的方法能在子类中重新定义吗 (不能) 12 用那个关键字定义最终类和最终方法 (final) 13. 最终类能做为父类吗 (不能) 14. 最终方法能被继承吗 (不能)

15. 最终方法只能存在于最终类中吗 (不一定)

16. 声明为 static和private 的方法是final的吗 (不是) 17. 接口中所有方法均为抽象方法吗 (是) 18. 接口中所有方法均为public的吗 (是)

19. abstract 和 final能同时修饰一个类吗 (不能) 20.下面是定义一个接口ITF的程序,完成程序填空. (interface abstract ) public _______ ITF {

public static final double PI=Math.PI;

public ______ doubl e area(double a, double b); }

16