面向对象技术Java期末复习考试试卷(三).doc_第1页
面向对象技术Java期末复习考试试卷(三).doc_第2页
面向对象技术Java期末复习考试试卷(三).doc_第3页
面向对象技术Java期末复习考试试卷(三).doc_第4页
面向对象技术Java期末复习考试试卷(三).doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

期末复习试卷(三)一、 单项选择题1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源文件名是( ) A. teststudent.java B. teststudent .class C. TestStudent.java D. TestStudent.class 正确答案:C 解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。2、关于下面的代码,哪个描述是正确的?public class Test public static void main(String args) Integer n1 = new Integer(3); Object n2 = new Integer(4); System.out.println(pareTo(n2); A. 可以编译通过,可以运行,并得到预期结果。 B. 可以编译通过,可以运行,但不能得到预期结果。 C. 可以编译通过,但又运行错误。 D. 有编译错误。 正确答案:D 解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T被替换为Integer,如下图: 因此,Integer类中compareTo()方法的定义如下:因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer:System.out.println(pareTo(n2);正确写法如下: System.out.println(pareTo(Integer) n2); 类似的包装类还有LongFloatDoubleCharBoolean等,都是将基本数据类型包装为类。3、下面哪种类型不是引用数据类型?( ) A. 数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean 字符类型:char 整数类型:byte, short, int, long 浮点类型:float,double引用数据类型包括类、接口、抽象类、数组(本质上是类),引用类型可以提供功能。注意:String是一个类,所以可以使用String s = new String(bistu)的方式创建对象;数组也是一个类,所以需要用new创建对象。4、类Test要定义一个无参数、无返回值的方法method,并能够通过Test.method()的方式调用method方法,则method方法的定义形式为 ( )。 A. public static void method ( ) B. public void method ( ) C. public final void method ( ) D. public abstract void method ( ) 正确答案:A 解析:静态方法(也叫类方法)可以不创建对象,而直接通过类名调用。5、下列关于接口说法正确的是 ( )。 A. 抽象类中的方法不全都是抽象的,因此可以创建对象。 B. 接口的引用既可以调用实现类重写的接口的方法,也可以调用实现类新增的方法。 C. 接口的实现类可以实现接口的部分方法。 D. 接口的方法都是抽象的,因此不可以创建对象。 正确答案:D 解析:选项A的前半句是对的,后半句错了。选项B前半句是对的,后半句不对。示例如下: public interface GeometricObjectpublic double getArea();public class Circle implements GeometricObjectpublic double getArea() . public double getPerimeter() public TestCirclepublic static void main(String args)GeometricObject c = new Circle();c.getArea(); /访问实现类覆盖接口的方法可以c. getPerimeter() /错误:不可以访问实现类新增的方法 选项C错误,实现类必须实现接口的所有的抽象的方法。6、将类的成员方法的访问权限设置为默认的,则该成员方法能被( )。 A. 同一包中的类访问 B. 其他包中的类访问 C. 所有的类访问 D. 所有的类的子类访问 正确答案:A 解析:注意本题可以继续扩展,例如把访问权限换成public/private/protected。7、下列哪个是Java应用程序主类中正确的main方法声明? ( ) A. public void main(String args) B. static void main(String ar) C. public static void Main(String a) D. public static void main(String args) 正确答案:D 8、有一段java应用程序,其中包含一个公共类,名字为Cat,那么保存它的源文件名是( ) A. Cat.java B. Cat.class C. Cat D. 都对 正确答案:A 与第1个选择题类似。9、下列哪个是JDK提供的编译器?( ) A. java.exe B. javac.exe C. javap.exe D. javaw.exe 正确答案:B 10、某个源文件如下:public class TestPersonclass Personclass Student extends Person那么保存它的源文件名是( ) A. TestPerson.java B. Person.java C. Student.java D. TestPerson.class 正确答案:A 参考第1、8题。11、以下定义一位数组的语句中,正确的是( ) A. int a5; B. int a =new 5; C. int a;int a = new int5; D. int a = 1,2,3,4,5; 正确答案:D 选项A: java中的数组是类,需要使用new关键字创建。选项B:落类型了,正确写法为 int a = new int5;选项C:重复定义变量a,正确写法: int a; a = new int5;12、String类实现Comparable接口,覆盖其中的compareTo()方法。下面哪个是正确的String类中被重写的compareTo()方法的方法头? A. public int compareTo(String o) B. public void compareTo(String o) C. public int compareTo(Object o) D. public void compareTo(Object o) 正确答案:A 解析:Comparable接口的定义如下:接口的实现类必须覆盖在接口中定义的抽象的方法,覆盖就意味在实现类中的方法要与在接口中定义的抽象方法同名、同参、同返回值。13、将类的某个成员方法的访问权限设置为protected的,则下面说法正确的是( )。 A. 同一包中的其他类不可以访问该方法 B. 不同包中的子类可以访问该方法 C. 所有包中的类都可以访问该方法 D. 所有包中的类都不可以访问该方法。 正确答案:B 14、下列哪一个类声明是错误的?( ) A. class A B. public class A C. protected class A D. public abstract class A 正确答案:C 解析:类只能被默认或者public修饰符修饰,这是与成员变量和成员方法不一样的地方。15、下面关于数组和集合的说法,哪一个是错误的?( ) A. 数组的长度一旦确定,不能修改; B. 集合的长度可变,但是效率比数组低; C. 数组和集合都属于引用类型; D. 数组使用泛型指明所存储的对象的类型。 正确答案:D 解析:ArrayList是集合的一种类型。集合使用泛型指明所存储的对象的类型。16、下面代码有错误的行是:_。1: public class Review13072: public static void main(String args)3: Number x = new Integer(3);4: System.out.println(Value();5: System.out.println(pareTo(new Integer(4);6: 7: A. line 2 B. line 3 C. line 4 D. line 5 正确答案:D 解析:(1) 查JDK帮助文档,Number是Integer的父类,Number没有实现Comparable接口,而子类Integer实现了Comparable接口,即子类Integer新增了compareTo()方法。(2) x的声明类型是Number,实际类型是Integer,根据父类引用不能调用子类新增的方法的原则,x不可以直接调用compareTo()方法。(3) 如果需要修改代码中的错误,可以进行强制类型转换,如下:System.out.println(Integer)x).compareTo(new Integer(4);17、inta = 1,4,7,2,5,6,0,该数组第1个和最后1个元素的下标为哪一项? ( ) A. 0,7 B. 1,6 C. 0,6 D. 1,7 正确答案:C 18、假设arr是一个int类型的二维数组,下面关于arr的声明和初始化,哪一项是错误的?( ) A. int arr = 1,2,3,4,5; B. int arr = new int23; C. int arr = new int2; D. int arr = new int3; 正确答案:D 解析:Java的二维数组是由一维数组模拟的,示例如下: 没有第一维,就不会有第二维,所以,创建数组的时候,不能只指明第二维,不指明第一维。但可以仅指明第一维,不指明第二维,如选项C。19、下面说法哪一个是错误的?( ) A. 构造方法的名称与类名一样。 B. 构造方法返回值可以为void。 C. 一个类可以有多个构造方法。 D. 在一个类中可以使用this调用该类的其他构造方法。 正确答案:B 解析:构造方法的作用是创建对象,因此,本质上,构造方法是有返回值的,其返回值就是它创建的对象。但是,由于即使不指明构造方法的返回值,JDK也知道其返回值类型,因此,构造方法的返回值类型省略掉了。但是绝对不能用void,void表示没有返回值。20、下面关于接口的定义哪个是正确的? A. interface A void print() ; B. abstract interface A extends I1,I2 abstract void print(); C. abstract interface A print(); D. interface A void print(); 正确答案:D 解析:(1)interface前面没有abstract修饰; (2)接口中的方法都是抽象的,因此不能有方法体,即。21、下面关于多态的说法,正确的是( )。 A. 一个类中不能有同名的方法; B. 子类中不能有和父类中同名的方法; C. 子类中可以有和父类中名字相同,且参数相同的方法; D. 多态性就是方法的名字和参数可以一样,但返回值的类型必须不一样。 正确答案:C 22、用于定义类成员的访问控制权的一组关键字是( ) A. class, float, double, public B. float, boolean, int, long C. char, extends, float, double D. public, private, protected 正确答案:D 23、下面关于接口的说法哪一条是错误的?( ) A. 接口是一种特殊的抽象类,接口的方法都是抽象方法; B. 类可以实现接口; C. 接口和子接口可以有自己的实例对象; D. 可以使用接口声明引用,引用实现本接口或子接口的类的对象。 正确答案:C 解析:接口中的方法都是抽象的,不能创建实例;类似的,抽象类也不可以创建实例。24、下面关于抽象类的说法,哪一条是错误的?( ) A. 抽象类可以不包含抽象方法; B. 一个类只要有一个抽象方法,就是抽象类; C. 抽象类不能创建对象,创建对象的工作由抽象类的具体子类来实现; D. 对于抽象类中的抽象方法来说,在抽象类中既要指定方法名和参数,又要指定实现代码。 正确答案:D 解析:抽象方法没有方法体,因此不可能有实现代码。25、Java源程序经过编译后得到的类文件的扩展名是哪一个项?( ) A. java B. exe C. class D. html 正确答案:C 26、Worker类是Person类的子类,Worker的构造方法中有一句super(),该语句是( )。 A. 调用Person类中定义的super()方法 B. 语法错误 C. 调用Person类的构造方法 D. 调用Worker类中定义的super()方法 正确答案:C 27、关于覆盖和重载,下面说法哪一个是错误的?( ) A. 一个类中包含多个同名但参数不同的方法,这些方法构成了重载。 B. 普通的成员方法可以重载,但构造方法不可以重载。 C. 如果在子类中定义的方法与其父类的某个方法具有相同的名称、参数和返回值,则称子类的方法覆盖了父类的方法。 D. 当父类的方法不能满足子类的要求时,子类可覆盖父类的方法;当一种功能有多种实现时,可使用重载来提供多个同名不同参的方法。 正确答案:B 解析:构造方法也可以重载,即一个类可以有多个构造方法。28、下面的代码说明类A和类B之间是什么关系?( )class A class B extends A A. 关联 B. 继承 C. 依赖 D. 实现 正确答案:B 29、下面代码的错误出现在_。1: public class Review13082: public static void main(String args)3: Number x = new Integer(3);4: System.out.println(Value();5: System.out.println(Integer)pareTo(new Integer(4);6: 7: A. line 2 B. line 3 C. line 4 D. line 5 正确答案:D 30、下列关于继承的概念,哪项叙述是正确的?( ) A. 在java中,允许一个类继承多个父类; B. 在java中,一个类只能实现一个接口; C. 在java中,一个类不能同时继承一个类和实现一个接口; D. java的单一继承使代码更可靠。 正确答案:D 解析:Java采用单继承,即只能有一个父类,但可以实现多个接口。二、 程序题1、GeometricObject是几何图形抽象类,Circle类继承了GeometricObject类,同时实现了Comparable<Circle>接口,三者的UML类图如下: 提示:Comparable<T>接口在java.lang包中已经定义,不需要自己写。解题要求:编写测试类,要求如下:(1)创建Circle类的对象c1和c2,设定c1的半径为5,c2的半径为6。(2)输出c1和c2的半径;c1的周长和面积;调用c1的compareTo(Circle o) 方法与c2比较,输出比较结果。(3)将c1的半径改为8,按照(2)中的要求输出信息。(4)将c1的半径改为6,按照(2)中的要求输出信息。样例如下package qiZhongKaoShi2;public class TestCircleComparable public static void main(String args)Circle c1 = new Circle(5);Circle c2 = new Circle(6);System.out.println(c1的半径是 + c1.getR();System.out.println(c2的半径是 + c2.getR();System.out.println(c1的周长是 + c1.getPerimeter();System.out.println(c1的面积是 + c1.getArea();if (pareTo(c2)=1)System.out.println(c1比c2大);else if (pareTo(c2)=-1)System.out.println(c1比c2小);else System.out.println(c1与c2相等);System.out.println();c1 = new Circle(8);System.out.println(c1的半径是 + c1.getR();System.out.println(c2的半径是 + c2.getR();System.out.println(c1的周长是 + c1.getPerimeter();System.out.println(c1的面积是 + c1.getArea();if (pareTo(c2)=1)System.out.println(c1比c2大);else if (pareTo(c2)=-1)System.out.println(c1比c2小);else System.out.println(c1与c2相等);System.out.pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论