收藏 分销(赏)

面向对象技术Java-期末复习试卷(三).docx

上传人:二*** 文档编号:4516637 上传时间:2024-09-26 格式:DOCX 页数:23 大小:69.61KB 下载积分:5 金币
下载 相关 举报
面向对象技术Java-期末复习试卷(三).docx_第1页
第1页 / 共23页
本文档共23页,全文阅读请下载到手机保存,查看更方便
资源描述
期末复习试卷(三) 一、 单项选择题 1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源 文件名是() A. teststudent.java B. teststudent .class C. Teststudent.java D. TestStudent.class 正确答案:C 解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(publ ic), 该java文件的名字要与公共类的一致。 2、关于下面的代码,哪个描述是正确的? public class Test{public static void main(String[] args){ Integer nl = new lnteger(3);Object n2 = new lnteger(4); System.out.println(nl pareTo(n2));) ) A.可以编译通过,可以运行,并得到预期结果。 B.可以编译通过,可以运行,但不能得到预期结果。 C.可以编译通过,但又运行错误。 D.有编译错误。 正确答案:D 解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值, C. abstract interface A{print(); ) D. interface A{void print(); ) 正确答案:D 解析:(1) interface前面没有abstract修饰;(2)接口中的方法都是抽象的,因此不能有方法体,即3。 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 正确答案:C26、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、下面代码的错误出现在 0 1: public class Reviewl308{ 2: public static void main(String[] args){ 3:Number x = new lnteger(3); 4:System.out.println(x.intValue()); 5:System.out.println((lnteger)x pareTo(newlnteger(4))); 6:} 7:) B. line 2 C. line 3 D. line 4 E. line 5 正确答案:D 30、以下关于继承的概念,哪项表达是正确的?() A.在java中,允许一个类继承多个父类; B.在java中,一个类只能实现一个接口; C.在java中,一个类不能同时继承一个类和实现一个接口: D. java的单一继承使代码更可靠。 正确答案:D 解析:Java采用单继承,即只能有一个父类,但可以实现多个接口。 二、程序题1、GeometricObject是几何图形抽象类,Circle类继承了 GeometricObject类,同时实现 了 Comparable&lt;Circle&gt;接口,三者的 UML 类图如下:提示: Comparable&lt;T&gt;接I I在java.lang包中已经定义,不需要自己写。 解题要求:编写测试类,要求如下: (1)创立Circle类的对象cl和c2,设定cl的半径为5, c2的半径为6。 (2)输出cl和c2的半径;cl的周长和面积;调用cl的compareTofCircle o)方法与c2 比拟,输出比拟结果。 (3)将cl的半径改为8,按照(2)中的要求输出信息。 (4)将cl的半径改为6,按照(2)中的要求输出信息。样例如下 package qiZhongKaoShi2;public class TestCircleComparable { public static void main(String[] args){Circle cl = new Circle(5); Circle c2 = new Circle(6);System.out.println("cl 的半径是"+ cl.getR()); System.out.println("c2 的半径是"+ c2.getR());System.out.println("cl 的周长是"+ cl.getPerimeter()); System.out.println("cl 的面积是"+ cl.getArea());if (cl pareTo(c2)==l) System.out.println("cl 比 c2 大”);else if (cl pareTo(c2)==-l) System.out.println("cl 比 c2 小");else System.out.println("cl 与 c2 相等System.out.println(); cl = new Circle(8);System.out.println("cl 的半径是"+ cl.getR()); System.out.println("c2 的半径是"+ c2.getR());System.out.println("cl 的周长是"+ cl.getPerimeter()); System.out.println("cl 的面积是"+ cl.getArea());if (cl pareTo(c2)==l) System.out.println("cl 比 c2 大”);else if (cl pareTo(c2)==-l) System.out.println("cl 比 c2 小”);else System.out.println("cl 与 c2 相等");System.out.println(); cl = new Circle(6);System.out.println("cl 的半径是"+ cl.getR()); System.out.println("c2 的半径是"+ c2.getR());System.out.println("cl 的周长是"+ cl.getPerimeter()); System.out.println("cl 的面积是"+ cl.getArea());if (cl pareTo(c2)==l) System.out.println("cl 比 c2 大”);else if (cl pareTo(c2)==-l) System.out.println("cl 比 c2 小,else System.out.println("cl 与 c2 相等");} } abstract class GeometricObject{public abstract double getArea(); public abstract double getPerimeter(); )class Circle extends GeometricObject implements Comparable<Circle>{ private double r; public Circle(){} public Circle(double r){this.r = r; public double getR() { return r;) public void setRfdouble r) { this.r = r;) @Overridepublic double getArea() { return Math.PI * r * r;) (©Overridepublic double getPerimeter() { return 2 * Math.PI * r; )@Override public int compareTo(Circle o) { if (r > o.getR(l)return 1; else if ( r< o.getR())return -1; elsereturn 0; 附录资料:不需要的可以自行删除长方体和正方体知识要点 名称 面 棱 顶点 长方体 有6个面一般情况下6个面都 是长方形,相对的面完全相同 (特殊情况下有两个相对的面 是正方形,其余的4个面是完全 相同的长方形) 有12条棱 (相对的4条 棱的长度相 等) 有8个顶 占 八、、 正方体 有6个面 是6个完全相同的正 方形 有12条棱 12条棱的长度 都相等 有8个顶 点 长方体的棱长总和二长X4+宽义4+高X4或 长方体的棱长 总和=(长+宽+高)X4 正方体的棱长总和=棱长X12 长方体或正方体六个面的总面积,叫做它的外表积。 长方体的外表积=(长义宽+长X高+宽义高)X 2上面或下面 前面或后面左面或右面 正方体的外表积=棱长X棱长X 6一个面的面积6个面 物体所占空间的大小叫做物体的体积。 容器所能容纳物体的体积,叫做这个容器的容积。 常用的体积单位有:(立方厘米)、(立方分米)、(立方米)。 棱长1厘米的正方体,体积是1立方厘米。 棱长1分米的正方体,体积是1立方分米。 棱长1米的正方体,体积是1立方米。 计量液体的体积,常用(升)和(毫升)作单位。 1立方分米=1升1立方厘米=1毫升 长方体的体积二长X宽X高正方体的体积=棱长X棱长义棱长 V = abhV =a.a.a 或 V=a?读作a的立方表一3个a相乘。 长方体和正方体底面的面积,叫做它们的底面积。 长方体和正方体体积计算的统一公式:长方体(或正方体)的体积=底面积X高 V = sh 正方体的棱长扩大缩小假设干倍,它的外表积扩大或缩小这个倍数的 平方,体积扩大或缩小这个倍数的立方。 长方体的长、宽、高同时扩大缩小假设干倍,它的外表积扩大或缩小这 个倍数的平方,体积扩大或缩小这个倍数的立方。 分数乘法知识要点: • 分数与分数相乘,用分子相乘的积作分子,分母相乘的积作分母。 • 分数与分数相乘的计算方法对于整数与分数相乘也适用,因为整 数可以化成分母是1的分数。 • 求一个数的几分之几是多少,用乘法计算。(求一个数的几倍是 多少,也用乘法计算)乘积是1的两个数互为倒数。 A、求一个分数的倒数,把它的分子和分母调换位置。 1 B、整数(0除外)的倒数是磁C、1的倒数是1 D、 。没有倒数。 E、真分数的倒数都大于1,假分数的倒数都小于或等于1。 分数除法知识要点1、甲数除以乙数(乙数不为0),等于甲数乘乙数的倒数。 2、一个数(不为0),乘一个小于1的数,得数比这个数小;乘一个 大于1的数,得数比这个数大。 3、被除数(不为0),除数大于1,商比被除数小;除数小于1,商比 被除数大;除数等于1,商等于被除数。 4、做分数乘除法应用题的注意点: (1)找出关键句,确定单位〃甘、比拟量,看清单位“1〃是己知还是 未知。 (2)单位“1〃,求比拟量,用乘法计算。单位“1〃x分率=比拟量 单位〃 1〃未知,求单位〃 1〃,用方程或除法计算。对应量+对应分率=单位〃 1" 提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要 转换成int类型,就要调用Integer类的parselntO方法)并实现了 ComparabIe接口, 在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T 被替换为Integer,如以下图: java, lang类 Integer lanw, ObjectJ j aua・ lang. Number L- java. lang. Integer Coiroarablexlnteser/ 所有已实现的接口 Serializable, 因此,Integer类中compareTo()方法的定义如下: int compareTointeger pnotherInteger)-在题字上比拟两个Integer对象。 1I 因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2 的类型需要进行强制类型转换,由Object转为Integer: System. out. pr intIn (n1. compareTo (n2)); 正确写法如下: System. out. pr intIn(n1. compareTo((Integer) n2)); 类似的包装类还有Long\FIoat\DoubIe\Char\BooIean等,都是将基本数据类型包 装为类。 3、下面哪种类型不是引用数据类型?() A.数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean5、求一个数是另一个数的几分之几用除法计算。(求一个数是另一 个数的几倍,也用除法计算) 求一个数的几分之儿是多少,用乘法计算。(求一个数的几倍是 多少,也用乘法计算)认识比知识要点 1、两个数的比表示求两个数相除,比的前项除以后项所得的商叫做比值。 •比与除数、分数的联系: 比 前项 后项 比值 除法 被除数 除数 商 分数 分子 分母 分数值 补充:比的后项不能为0。比值不能带单位名称。 3、比的基本性质: 比的前项和后项同时乘或除以相同的数(0除外),比值不变。 4、化简比的依据:比的基本性质。 5、化简比与求比值的区别化简比:化成最简单的整数比,有前项、后项和比号;求比值:是 前项除以后项所得的商。 认识百分数知识要点1表示一个数是另一个数的百分之几的数叫做百分数,也叫做百分率 或百分比。百分数通常用“%”来表示。百分号〃 % 〃是表示百分数的符号。 2、分母是100的分数不一定是百分数。 3、分数既可以表示一个数是另一个数的百分之几(分率),也可以 表示具体数量;百分数只表示一个数是另一个数的百分之几(分率)。 百分数不能带单位名称。 4 .小数化成百分数:只要把小数点向右移动两位,同时在后面添上 百分号;百分数化成小数:把百分数化成小数,只要把百分号去掉, 同时把小数点向左移动两位。 5 .分数化成百分数:通常先把分数化成小数(除不尽时,通常保存 三位小数),再把小数化成百分数。 6 .百分数化成分数:先把百分数改写成分数,能约分的要约成最简 分数。 7、求一个数是另一个数的几分之几用除法计算,求一个数是另一个 数的百分之几也用除法计算。 常用的数量关系式 1、每份数X份数=总数总数+每份数=份数 总数+份 数=每份数2、速度X时间=路程 2、速度X时间=路程 路程+速度=时间路程+时间 =速度3、单价X数量=总价总价+单价=数量总价♦数量 =单价 4、工作效率X工作时间=工作总量 工作总量+工作效率=工 作时间 工作总量♦工作时间=工作效率5、加数+加数=和 5、加数+加数=和 一个加数=和一另一个加数 6、被减数一减数=差 被减数=差+减数 减数=被减数- 7、因数X因数=积 一个因数=积+另一个因数 8、被除数=商乂除数 被除数+除数=商除数=被除数♦商 9、总数+总份数=平均数 10、相遇问题相遇路程=速度和义相遇时间相遇时间=相遇路程♦速度和 速度和=相遇路程+相遇时间运算定律 1 .加法交换律: 两个数相加,交换加数的位置,它们的和不变,即a+b=b+a。 2 .加法结合律: 三个数相加,先把前两个数相加,再加上第三个数;或者先把后两个数相加,再和第一个数相加它们的和不变,即(a+b)+c=a+(b+c) o 3 .乘法交换律:两个数相乘,交换因数的位置它们的积不变,即axb=bxao 4 .乘法结合律: 三个数相乘,先把前两个数相乘,再乘第三个数;或者先把后两个数 相乘,再和第一个数相乘,它们的积不变,即(axb)xc=ax(bxc)。 5 .乘法分配律: 两个数的和与一个数相乘,可以把两个加数分别与这个数相乘再把两 个积相加,即(a+b)xc=axc+bxc。 6 .减法的性质: 从一个数里连续减去几个数,可以从这个数里减去所有减数的和,差 不变,即a-b-c=a-(b+c)。 小学数学图形计算公式1、正方形周长=边长X4 1、正方形周长=边长X4 正方形面积=边长X边长 长方形周长二(长+宽)X2 长方形周长二(长+宽)X2 长方形面积二长X宽 2、三角形面积二底X高+ 2 三角形高二面积X2♦底 三角形底二 面积X2♦高 3、平行四边形面积二底X高 4、梯形面积二(上底+下底)X高小25、圆的周长=直径X刀或=2 X/1X半径圆面积=半径2X刀 常用单位换算 长度单位换算1千米=1000米1米=10分米1分米=10厘米1米=100厘米1厘 米=10毫米(1米=100厘米)面积单位换算 1平方千米=100公顷1公顷=10000平方米1平方米=100平方分米1平方分米=100平方厘米1平方厘米 =100平方毫米 1平方米=10000平方厘米体(容)积单位换算 1立方米=1000立方分米1立方分米=1000立方厘米1立方分米=1升 1立方厘米=1毫升1立方米=1000升质量单位换算 1吨=1000千克 1千克=1000克1千克=1公斤人民币单位换算 1元=10角 1角=10分1元=100分 字符类型:char整数类型:byte, short, int, long 浮点类型:float, double 引用数据类型包括类、接口、抽象类、数组(本质上是类),引用类型可以提供功 能。 注意: String是一个类,所以可以使用String s = new Str i ng ("b i stu")的方式创立对 象; 数组也是一个类,所以需要用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 GeometricObject{public double getArea{); )public class Circle implements GeometricObject { public double getArea(){ .....}public double getPerimeter(){} )public TestCircle{ public 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[]) 正确答案:D8、有一段java应用程序,其中包含一个公共类,名字为Cat,那么保存它的源文件名 是() A. Cat.java B. Cat.class C. Cat D.都对 正确答案:A 与第1个选择题类似。 9、以下哪个是JDK提供的编译器?() B. javac.exe C. javap.exe D. javaw.exe 正确答案:B10> 某个源文件如下:public class TestPerson{}class Person{}class Student extends Person。那么保存它的源文件名是() A. TestPerson.java B. Person.java C. Student.java D. TestPerson.class 正确答案:A 参考第1、8题. 11、以下定义一位数组的语句中,正确的选项是( A. int a[5]; B. int a[] =new [5]; C. int a[];int a = new int⑸; D.inta[] = {U,3A5}; 正确答案:D 选项A: java中的数组是类,需要使用new关键字创立。 选项B:落类型了,正确写法为int a[] = newint[5]; 选项C:重自:定义变量a,正确写法:int a。;a = new int[5]; 12、String类实现Comparable接口,覆盖其中的compareTo。方法。下面哪个是正确的 String类中被重写的compared)方法的方法头? 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接口的定义如下: 方法摘要1Rt coapareTo(T o) '比拟此对象与指定对象的顺序。 接口的实现类必须覆盖在接口中定义的抽象的方法,覆盖就意味在实现类中 的方法要与在接口中定义的抽象方法同名、同参、同返回值。 13,将类的某个成员方法的访问权限设置为protected的那么下面说法正确的选项是(X 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 Reviewl307{ 2:public static void main(String[] args){ 3:Number x = new lnteger(3); 4:System.out.println(x.int\/alue()); 5:System.out.println(x pareTo(newlnteger(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(((lnteger)x) pareTo(new lnteger(4))); 17、inta口 = {1,4,7,256,0},该数组第1个和最后1个元素的下标为哪一项? ( ) A.0,7 B. 1,6 C. 0,6 D. 1,7 正确答案:C 18、假设an•是一个int类型的二维数组,下面关于an•的声明和初始化,哪一项为哪一项错误 的?() A. int[][] arr = {{1,2},{3,4,5}}; B. int[][] arr = new int[2][3]; C. int(][] arr = new int[2][]; D. int[][] arr = new int[][3j; 正确答案: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(){};
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服