Java面向对象软件开发(巩固与提高) 联系客服

发布时间 : 星期四 文章Java面向对象软件开发(巩固与提高)更新完毕开始阅读

String b = \接口B中变量\ void showB(); }

interface C extends B{ String c = \接口C中变量\ void showC(); }

class InterfaceABC implements C{ public void showA(){ }

public void showB(){ }

public void showC(){ } }

public class InterfaceDemo{

public static void main(String[] args) { InterfaceABC i = new InterfaceABC(); i.showA(); i.showB(); i.showC(); } }

System.out.println(c); System.out.println(b); System.out.println(a);

运行结果: 4、 操作题

(1) 定义抽象的Intrument(乐器)类,声明一个抽象的play();定义一个派生类Stringed(弦类乐器),实现父类的抽象的play(),在main()中实例化Stringed类调用play()。

(2) 定义含有抽象方法print()的基类,在构造方法中调用print();print()方法在派生类被重写,该方法打印在派生类中定义的成员变量i,在定义i时给定非零的初始值;在main()中,创建派生类的对象,然后调用print()。

(3) 定义一个接口Myinterface,有两个抽象方法max()和min();在Operation类中实现该接口,同时实现抽象方法max()和min(),它们分别用于求任意三个整数中的最大值和最小值。

(4) 定义一个Compute接口,有抽象方法add()、substract()、multiply()和divide();定义一个实现Compute接口的类Computer,然后创建Computer对象完成加、减、乘和除四个方法的调用。

(5)定义一个接口M,其中有两个抽象方法,max()、min(),在P类中实现和继承,同时实现抽象方法max(),min()求三个数中的最大值和最小值。

17

单元测试(一)

一、选择题(每小题2分,共50分)

1、Java中定义类头时,不可能用到的关键字是( )。 A)class B)private C)extends D)public 2、下列类头定义中,错误的是( )。 A)public x extends y {...}

B)public class x extends y {...}

C)class x extends y implements y1 {...} D)class x {...}

3、设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( )。 A) float A a; B) public A a=A( ); C) A a=new int( ); D) static A a=new A( );

4、 设i、j为类X中定义的int型成员变量名,下列X类的构造方法中不正确的是( )。

A) void X(int k ){ i=k; } B) X(int k ){ i=k; } C) X(int m, int n ){ i=m; j=n; } D) X( ){i=0;j=0; }

5、 以下为类A中构造方法的声明,其中正确的是( )。 A)void A(int x){...} B) public A(int x){...} C)public a(int x){...} D) static A(int x){...}

6、 下列方法定义中不正确的是( )。 A) float x( int a,int b ) { return (a-b); } B) int x( int a,int b) { return a-b; }

C) int x( int a,int b ); { return a*b; } D) int x(int a,int b) { return 1.2*(a+b); } 7、 Java语言中类间的继承关系是( )。

A)多重的 B) 单重的 C) 线程的 D) 不能继承 8、以下关于Java语言继承的说法正确的是( )。

A)Java中的类可以有多个直接父类 B)抽象类不能有子类

C)Java中的接口支持多继承 D)最终类可以作为其它类的父类 9、现有两个类A、B,以下描述中表示B继承自A的是( )。

A) class A extends B B) class B implements A C) class A implements B D) class B extends A

10、对于任意一个类,用户所能定义的构造方法的个数至多为( )。 A)0个 B)1个 C)2个 D)任意个

11、Java中类的构造方法何时被调用( )。

A)类定义时 B)创建对象时 C)调用对象方法时 D)使用对象的变量时

12、类是具有相同( )的一组对象的总称,是对对象的抽象描述。

A)属性和行为 B)对象和方法 C)变量和数据 D)对象和属性 13、下列选项中,用于定义接口的关键字是( )。

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

18

A)interface B) implements C) abstract D) class

15、现有类A和接口B,以下描述中表示类A实现接口B的语句是( )。 A) class A implements B B) class B implements A C) class A extends B D) class B extends A 16、下列选项中,定义抽象类的关键字是( )。

A)interface B) implements C) abstract D) class 17、下列选项中,定义最终类的关键字是( )。

A)interface B) implements C) abstract D) final 18、下列选项中,哪个是Java语言所有类的父类( )。 A)String B) Vector C) Object D) KeyEvent

19、下列选项中,表示数据或方法只可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以的修饰符是( )。

A)public B) protected C) private D) final

20、下列选项中,表示数据或方法只能被本类访问的修饰符是( )。 A)public B) protected C) private D) final 21、下列选项中,接口中方法的默认可见性修饰符是( )。 A)public B) protected C) private D) final

22、如果子类中的方法mymethod()覆盖了父类中的方法mymethod(),假设父类方法头部定义如下:void mymethod(int a),则子类方法的定义不合法的是:( )。

A) public void mymethod(int a) B)protected void mymethod(int a) C)private void mymethod(int a) D)void mymethod(int a) 23、在某个类中存在一个方法:void sort(int x),以下不能作为该方法的重载的声明的是( )。

A) public float sort(float x) B) int sort(int y) C) double sort(int x,int y) D) void sort(double y)

24、当子类中的成员变量与父类中的成员变量同名时:( )。 A)子类中的成员变量隐藏父类中的变量 B)父类中的成员变量隐藏子类中的变量 C)子类中变量无效 D)该声明非法

25、下列对Java源程序结构的叙述中,错误的是( )。 A)import语句必须在所有类定义之前 B)接口定义允许0或多个

C)Java Application中的public class类允许0或多个 D)package语句允许0或1个

二、填空题(每小题1分,共10分)

1、如果子类中的某个成员变量的命名与它的父类中的某个成员变量完全一样,则称子类中的这个变量 ________ 了父类的同名变量。

2、属性的隐藏是指子类重新定义从父类继承来的同名 __________。

3、如果子类中的某个方法的名字、返回值类型和 __________ 与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。

4、在Java程序中,通过类的定义只能实现单重继承,但通过 _________ 的定义可以实现多重继承关系。

5、抽象方法只有方法头,没有 _____________。

6、如果一个方法没有返回值,则该方法返回值类型为 ______________。

19

7、接口中所有属性均为 _________、_________ 和 _________的。 8、如果接口中定义了一个方法methodA()和一个属性attA,那么一个类ClassA要实现这个接口的话,就必须实现其中的 __________ 方法。

9、一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否则该类就必须定义成 _______________ 的。

10、Java语言中,表示一个类A继承自父类B,并实现接口C的类头定义语句是 _______________________________。

三、程序阅读题(每小题4分,共20分) 1、下面是一个类的定义,请完成程序填空。 public class ____________ { int x, y;

Myclass ( int i, __________){ // 构造方法 x=i;

y=j; } }

2、下列程序的输出结果是:____________________________。 class Demo {

public void test(){ System.out.println(\public void test(int i){ System.out.println(i); } public void test(int a, int b){ System.out.println(a+b);} }

public class Test{

public static void main(String args[]){

Demo de=new Demo();

de.test(); de.test(5); de.test(6,8); } }

3、写出下列程序的输出结果:____________________________。 public class Test{

public static void main(String[] args){ Count myCount = new Count(); int times = 0;

for(int i=0;i<100;i++)

increment(myCount , times);

System.out.println(\ System.out.println(\

20